J'essaie de créer un petit framework javascript qui peut le rendre plus facile lorsqu'il s'agit d'une bibliothèque tierce. Cette bibliothèque est principalement asynchrone, par exemple pour établir une connexion que vous utilisez le code:Encapsuler les demandes asynchrones
var com = establishConnection("api-key");
com.onsuccess = function(c) {
c.submit("something");
};
Ce que je veux être en mesure d'utiliser mon cadre de wrapper pour être en mesure de faire simplement
var com = establishConnection("api-key");
com.submit("something");
Évidemment, bien que j'ai besoin d'un moyen de gérer la nature asynchrone de la bibliothèque d'origine, il attendra jusqu'à ce que la connexion soit établie avant d'exécuter les commandes. Je sais que je peux faire quelque chose comme mettre un drapeau pour dire si oui ou non la connexion est établie, puis utiliser une sorte de retard en boucle, à savoir
function submit(msg) {
while (!connectionEstablished) {}
// do submit stuff
}
, mais il semble que cette bidouille horrible, ce que quelqu'un a des conseils pour de meilleurs moyens de le faire?
Oui, je suis d'accord, malheureusement, il y a quelques points où je vais avoir pour masquer l'asynchronicité, et j'espérais juste une meilleure solution. La plupart du temps, les requêtes asynchrones sont assez rapides, elles passent toutes par un serveur local, mais je suppose que je peux juste être sélectif sur le comportement que je masque et bloquer uniquement lorsque c'est absolument nécessaire. Merci quand même –