同期する必要がある promise オブジェクトがあります。たとえば、最初の約束が完了する前に、2 番目の約束が機能するべきではありません。最初のものが拒否された場合、最初のものを再度実行する必要があります。
いくつかの例を実装しました。これはうまく機能します。getVal を呼び出し、2000ms 待ち、戻り、i++、再度 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');
}
}
しかし、promise オブジェクトの配列を制御する必要があります。私がやりたいことは、データがあり、それを5つに分割したことです。最初の部分が処理された後 (例: サーバーに送信)、2 番目の部分を処理したい場合は、最初の部分を再度処理する必要があります。
これは私が作ったプロトタイプの実装です
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');
}
}
このコードの Promise オブジェクトは順次動作します。最初の例として同期的に動作するように、以下のコードを修正するにはどうすればよいですか。