JavaScript-Objektzähler wird nicht wie erwartet inkrementiert

8

Ich habe Probleme, die Eigenschaft errorCount während der Codeausführung zu erhöhen. Das Problem, das ich habe, tritt innerhalb der Anforderung $.ajax auf, genauer gesagt die Methode addError() .

Wenn ich den folgenden Code unten verwende, um die aktuelle Anzahl von errorCount zu überprüfen, wird immer 0 zurückgegeben, obwohl ich manuell einen Fehler erzeugt habe. Aber innerhalb der Ajax-Methode, nachdem ich addError() aufgerufen habe und dann den Wert von errorCount überprüft habe, zeigt 1 wie es sollte. Was habe ich falsch gemacht?

%Vor%

Hier ist der Objektcode:

%Vor%     
Yamaha32088 25.02.2016, 19:44
quelle

1 Antwort

3

Das Problem besteht darin, dass Sie einen asynchronen (AJAX) -Aufruf durchführen. Wenn Sie die Funktion queueCalls aufrufen, ruft sie den AJAX-Aufruf auf und führt dann Ihre console.log-Anweisungen aus. Es wird nicht gewartet, bis der AJAX-Aufruf erfolgt ist und Sie Ihre Fehler erhalten haben, um die Konsolenanweisungen auszuführen. Wenn Sie das tun möchten, sehen Sie sich die jQuery-Dokumentation für .ajax () an und machen Sie Ihren AJAX-Aufruf nicht asynchron oder setzen Sie Ihre Konsolenanweisungen in einen .done () - Ereignishandler, der ausgelöst wird, nachdem der AJAX-Aufruf abgeschlossen wurde.

    
Jacob Petersen 25.02.2016, 19:52
quelle

Tags und Links