Como sincronizar objetos do Promise?
Eu prometo objetos que precisam funcionar sincronizados. Por exemplo, a segunda promessa não deve funcionar antes da primeira. Se o primeiro rejeitar, o primeiro deverá ser executado novamente.
Eu implementei alguns exemplos.Este funciona bem. chame getVal, aguarde 2000ms, retorne i ++, chame novamente getVal .....
getVal() {
return new Promise(function(resolve, reject) {
setTimeout(function(){ resolve(19) }, 2000);
});
}
async promiseController(){
for(var i =0;i<5;i++)
{
var _val = await this.getVal()
console.log(_val+'prom');
}
}
Mas preciso controlar uma variedade de objetos promissores. O que eu quero fazer é ter dados e dividi-os em 5 partes. Depois que a primeira parte é processada (por exemplo: enviada ao servidor), bem, eu quero processar a segunda parte, caso contrário, tenho que processar a primeira parte novamente.
Esta é a implementação do protótipo que fiz
getVal() {
return new Promise(function(resolve, reject) {
setTimeout(function(){ resolve(19) }, 2000);
});
}
async promiseController(){
var proms=[]
for(var i =0;i<5;i++)
{
proms.push(this.getVal())
}
for(var i =0;i<5;i++)
{
var _val = await proms[i]
console.log(_val+'prom');
}
}
Promete que os objetos neste código funcionam sequencialmente. Como posso corrigir o código abaixo para que ele funcione síncrona como primeiro exemplo.