2017-10-26 13 views
0

私はすべての約束が次のステップに移るまで充足されるのを待つ必要があるので、正しい方法でそれを行いますか?Promise.all()各約束応答

+0

インデックスを持っている場合にカウンタを増やす理由は何ですか? Promise.allはあなたが送った順番ですべての結果を提供します。 –

+0

'this.sms.send()'は約束を返しますか? – Ozan

+0

はい、this.sms.sendは約束を返します@Ozan –

答えて

1

各約束にresolveCallbackを割り当てることができます。 次に、Promise.all()を使用して、すべての約束が完了するのを待つ必要がある作業をすべて待つのを待ちます。

let counter = 0; 
for (var i = 0; i < message.destinatarios.length; i++) { 
    const prom = this.sms.send(destinatario.numero_celular, string); 
    messageList.push(prom); 
    prom.then(() => { 
    //your logic for whatever you want to do for every time a promise is resolved 
    console.log("processing " + ++counter + " of " + messageList.length); 
    }) 
} 
Promise.all(messageList) 
+0

それを解決するために最も魅力的な方法だと思われますが、各約束の応答はPromise.allの応答に影響しますか? –

+0

@ WelderMarcos、No. – Ozan

+0

ありがとうございました。私は正しい答えとしてこれを受け入れます。 –

-1

Promise.allは、ネストされた約定を並行して実行します。カウンターAFAIKは使用できません。少なくとも副作用としてカウンタを変更することはありません。

+0

@Alexを説明していただきありがとうございます –

関連する問題