Ich verwende eine Funktion, die von einer Drittanbieterbibliothek bereitgestellt wird. Diese Funktion nimmt eine Callback-Funktion als Parameter, aber ich möchte warten, bis dieser Callback aufgerufen wird, bevor ich fortfahre. Gibt es einen standardisierten / akzeptierten Weg, dies zu tun?
Ich bin nicht sicher, ob dies eine mögliche Lösung für Sie ist, aber Sie können das gewünschte Ergebnis erzielen, indem Sie Ihren Code in zwei Funktionen aufteilen. Angenommen, Sie beabsichtigen dies zu tun:
Das ist im Grunde Ihre ursprüngliche Funktion:
%Vor%Sie können den Codefluss ändern, indem Sie etwa Folgendes eingeben:
%Vor%Dies wird die Warteschleife beseitigen. Und soweit ich weiß, funktioniert beschäftigtes Warten im IE nicht (weil? Gott weiß nur) ..
Hier ist eine andere Methode von asynchronem Laden von jQuery , die nicht von einem anderen Skript abhängt.
Ich weiß nicht, ob Sharads Lösung in allen Fällen funktionieren würde (zum Beispiel wenn Aufrufe von Funktionen so weit verkettet sind, dass Daten als Variablen anstelle von Parametern übergeben werden müssen). Dasselbe Problem mit globalen Variablen. JavaScript hat keine "Warte" -Fähigkeit.
Obwohl ich ein ähnliches Problem hatte und mit jQuery, endete ich mit einer MacGyver-Typ-Lösung, die Ihnen eine Menge Kontrolle darüber gibt, wann Javascript-Funktionen ausgeführt werden. Ich habe es gerade hier als Antwort auf meine eigene Frage gepostet (aber ich habe eine Antwort, die nicht überprüft wurde - nach meinem Benutzernamen Emile suchen): Wie bekomme ich eine Variable, die über mehrere Funktionen zurückgegeben wird - Javascript / jQuery
Tags und Links javascript asynchronous callback