Ho un ciclo che chiama un metodo che fa roba asincrona. Questo ciclo può chiamare il metodo molte volte. Dopo questo ciclo ho un altro ciclo che deve essere eseguito solo quando tutte le cose asincrone sono fatte. Quindi questo illustra le mie esigenze:Come restituire molte promesse in un ciclo e attendere che tutti facciano altre cose
for(i=0;i<5;i++){
doSomeAsyncStuff();
}
for(i=0;i<5;i++){
doSomeStuffOnlyWhenTheAsyncStuffIsFinish();
}
Non mi sono familiare così tanto con le promesse, quindi qualcuno potrebbe aiutarmi a raggiungere questo obiettivo?
Ecco come il mio doSomeAsyncStuff()
si comportano:
doSomeAsyncStuff{
var editor = generateCKEditor();
editor.on('instanceReady',function(evt){
doSomeStuff();
// There should be the resolve() of the promises I think.
})
}
Forse devo fare qualcosa di simile:
doSomeAsyncStuff{
var editor = generateCKEditor();
return new Promises(function(resolve,refuse){
editor.on('instanceReady',function(evt){
doSomeStuff();
resolve(true);
})
}
}
Ma io non sono sicuro della sintassi.
Hai il controllo delle chiamate asincrone? Rendono già le promesse, o puoi farle restituire promesse? –
Che cos'è esattamente la sequenza? Hai bisogno di chiamare le altre funzioni dopo che * tutti * i precedenti asincroni sono finiti? O hai solo bisogno di chiamare una funzione dopo che ognuna delle async è finita? – Sosdoc
Per ora la prima funzione non restituisce promesse. Che devo attuare. Voglio modificare il mio messaggio per aggiungere alcuni dettagli del flusso di lavoro delle mie funzioni. E sì, ho bisogno che tutte le cose del primo ciclo finiscano prima di iniziare ad eseguire il materiale nel secondo ciclo. – Ganbin