J'ai une fonction de script Java qui prend un undefined pour terminer. Dans une boucle, je veux attendre que la fonction soit terminée, puis attendre une durée définie (par exemple 5000 ms) et appeler à nouveau la fonction. Comment puis-je accomplir cela dans Java Script?Appel d'une fonction asynchrone toutes les N secondes en JavaScript
Fondamentalement, je veux ceci:
call function and wait until it is finished
wait another 5000 seconds
call function and wait until it is finished
wait another 5000 seconds
...
La fonction elle-même ressemble à ceci:
for every group in list
.ajax(delete group items; get group items; add group items)
Le problème que j'ai actuellement est que dans le milieu de la boucle la fonction est en quelque sorte appelé à nouveau.
Vous avez raison. J'utilise la requête AJAX. Je vais mettre à jour la question. – xsl
Ce n'est pas si différent que ça - demandez à votre callback AJAX de faire l'appel à setTimeout (en supposant que votre fonction .ajax ait la fonctionnalité de rappel quand elle se termine avec succès). Que comptez-vous faire si l'appel AJAX ne se termine pas avec succès? – RobG
J'ignorerais les appels infructueux. J'ai effectivement plusieurs appels AJAX dans la fonction, donc je ne peux pas vraiment faire un setTimeout si l'on réussit. – xsl