Je dois écrire une fonction dans JavaScript, qui renvoie un état d'appel d'une fonction asynchrone. Cependant, l'appelant reçoit uniquement la valeur et aucune fonction de rappel ne doit être fournie. J'ai essayé quelque chose comme:Comment bloquer des fonctions asynchrones en JavaScript
function getState() {
var ret = null;
asyncCall("request",
function() { ret = "foo"; } // callback
);
while (ret === null)
; // block on the asynchronous call
return ret;
}
Cependant, la boucle ne va jamais finir ...
Toutes les idées? Je vous remercie.
Pourquoi voulez-vous bloquer l'appel asynchrone en premier lieu? Faire cela n'a aucun sens. – Tomalak
@Tomolak: parce que c'est un appel fourni par Firefox et je ne peux pas le changer. Cela devrait prendre au plus quelques millisecondes, je ne veux pas refactoriser tout mon code juste à cause de ça. –
Pouvez-vous publier la fonction qui appelle 'getState()'? – Tomalak