ich ein wenig verwirrt bin, wie zu bestimmen, wann async Funktion mehrmals von einem anderen genannt einen Anruf von der letzten Iteration beendet ist:jQuery JavaScript Nested Asynchronous Callback-Funktionen
function MainAsyncFunction(callback) {
for (var i = 0; i < 10; i++) {
SubAsyncFunction(function(success) {
if (i >= 10 && success) { // THIS IS WRONG?!
callback(true); // happens too early
}
});
}
};
function SubAsyncFunction(callback) {
SubSubAsyncFunction(function() {
callback(true);
});
}
Was ich tue, ruft die Google Distance Matrix service, die eine Beschränkung von 25 Zielen hat, daher muss ich meine Reihe von Zielen aufteilen, um diesen Dienst mehrere Male zu nennen, aber ich verstehe nicht, wenn es fertig ist.
und im Haupt-Bit des Codes kann ich sagen, dass die zweite Iteration der Schleife in der MainAsyncFunction ist noch nicht abgeschlossen, wenn es einen Rückruf durchführt.
Ich denke, mein Problem ist, dass ich mich nicht mit der Reihenfolge der Ereignisse beschäftigt habe, wenn es um asynchrone Funktionen in JavaScript geht ... bitte erläutern Sie, wie das Thema normalerweise erreicht wird.
ich meinen Code vereinfacht, wäre dies für mich noch? – Tsar
Ja, das würde immer noch funktionieren. Geben Sie mir einen Moment und ich werde Ihren neuen Code konvertieren ... –
@Tsar siehe meine Bearbeitung –