jQuery / Javascript Frage wird ein Click-Handler asynchron ausgeführt?
-
19-09-2019 - |
Frage
, wenn ich
$("a#foo").click();
$("a#bar").click();
dostuff();
und beide haben Klick-Handler angebracht, die es anders things..is tun garantiert, dass Leiste des Click-Handler nur nach Foo abgeschlossen ist ausgeführt wird? oder sind sie versandt asynchron
similarly..will dostuff () nur ausgeführt, wenn foo und bar der Klick-Handler vollständig?
Lösung
Das Modell Javascript Ausführung im Browser ist Single-Threaded (im Großen und Ganzen), so gibt es keine asynchronen Versand auf eine beliebige Stelle außerhalb Sachen gehen wie die HttpXmlRequest.
Also die foo click () Funktion vor Leiste klicken zurück () aufgerufen, die vor doStuff zurückkehren wird () aufgerufen wird.
Andere Tipps
Es hängt davon ab, was foo tut (Sie technisch foo Feuer Ereignisse einrichten konnte setTimeout verwenden, die nach der Methode abgeschlossen abfeuern konnte), aber ja Bar sollte nach foo abgeschlossen ist Feuer.