Lets sagen, dass ich den folgenden Code haben,Anruf nächste Iteration nach jedem Rückruf
function someFunction(){
var i = 0;
while (i < 10){
someAsyncProcess(someField, function(err, data){
i++;
// i want the next iteration of the while loop to occur after this
}
}
}
Die someAsyncProcess läuft, und 'i' Schritten.
Aufgrund der Async-Eigenschaft von JavaScript wird die while-Schleife jedoch tausende Male vor i = 10 ausgeführt. Was ist, wenn die while-Schleife genau 10 Mal ausgeführt werden soll? Was, wenn ich möchte, dass die while-Schleife den Code nur ausführt, nachdem die Callback-Funktion beendet wurde.
Ist dies ohne eine setTimeout-Funktion möglich?
Bitte beachten Sie, dass ich noch relativ neu in JavaScript bin, also korrigieren Sie mich, wenn ich falsch Jargon verwendet.
'while' synchron ist. Sie können nicht warten, bis ein asynchroner Prozess abgeschlossen ist. In diesem Fall können Sie keine while-Schleife verwenden. –
Irgendwelche Alternativen? –
Rekursion, Rekursion mit Versprechen, rxjs – smnbbrv