Setzen Sie ( Siehe unten ) async
auf false:
Dadurch wird der AJAX-Anruf blockiert, sodass der Browser darauf wartet, dass er beendet wird, bevor er fortgesetzt wird. Natürlich bin ich mir immer noch nicht sicher, wie sich das auf den Booleschen Wert bezieht, der in der Elternkondition überprüft wird. Vielleicht gibt es Code, den du uns nicht zeigst ...
Bearbeiten: ::: seufzer ::: Ich war jung und töricht, als ich diese Antwort gepostet habe und tatsächlich alles vergessen hatte. Ich behalte die oben genannten Informationen für historische Zwecke unverändert (da es einigen Leuten geholfen zu haben scheint oder zumindest, dass sie das haben), aber verstehe, dass dies kein richtiger Ansatz
Asynchrone Aufrufe synchron zu machen und die Ausführung zu blockieren ist in jedem Fall falsch. Tu es nicht. Strukturieren Sie die Logik stattdessen so, dass sie auf asynchrone Vorgänge reagiert. Im Fall dieser Frage sollten Aufrufe von console.log()
im Erfolgs- (oder Fehler-) Handler des AJAX-Aufrufs auftreten, nicht im Code nach dem Aufruf dieses Aufrufs.
Sie müssen dies beim Rückruf vom Ajax-Aufruf tun - so:
%Vor%Die Verwendung von AJAX erfordert nicht-lineare Programmierung - Callbacks im Überfluss.
Sie können die Option im Ajax-Aufruf so einstellen, dass sie nicht asynchron ist (dh jQuery wartet auf den Abschluss), aber dies führt dazu, dass Ihre Anwendung / Website nicht so gut funktioniert.