Mam pętlę, która wywołuje metodę, która robi rzeczy asynchornously. Ta pętla może wielokrotnie wywoływać tę metodę. Po tej pętli mam kolejną pętlę, która musi być wykonana tylko wtedy, gdy wszystkie asynchroniczne rzeczy są zrobione. Więc to ilustruje moje pragnienia:Jak zwrócić wiele obietnic w pętli i czekać, aż wszyscy zrobią inne rzeczy
for(i=0;i<5;i++){
doSomeAsyncStuff();
}
for(i=0;i<5;i++){
doSomeStuffOnlyWhenTheAsyncStuffIsFinish();
}
Nie znam tak wiele obietnic, więc czy ktoś mógłby mi pomóc to osiągnąć?
To jest jak moja doSomeAsyncStuff()
zachowywać:
doSomeAsyncStuff{
var editor = generateCKEditor();
editor.on('instanceReady',function(evt){
doSomeStuff();
// There should be the resolve() of the promises I think.
})
}
Może muszę zrobić coś takiego:
doSomeAsyncStuff{
var editor = generateCKEditor();
return new Promises(function(resolve,refuse){
editor.on('instanceReady',function(evt){
doSomeStuff();
resolve(true);
})
}
}
Ale nie jestem pewien składni.
Czy kontrolujesz połączenia asynchroniczne? Czy już zwrócą obietnice, czy może zwrócisz im obietnice? –
Czym dokładnie jest ta sekwencja? Czy chcesz wywołać inne funkcje po zakończeniu * wszystkich * poprzednich asynchronicznych? A może potrzebujesz wywołać funkcję po zakończeniu każdego asynchronizacji? – Sosdoc
Na razie pierwsza funkcja nie zwraca obietnic. Muszę to wdrożyć. Chcę edytować moją wiadomość, aby dodać kilka szczegółów dotyczących przepływu pracy moich funkcji. I tak, potrzebuję, aby wszystkie rzeczy pierwszej pętli zostały zakończone przed rozpoczęciem wykonywania rzeczy w drugiej pętli. – Ganbin