1. ホーム
  2. javascript

.forEach()が完了するのを待つための最適な方法

2023-11-04 10:33:40

質問

を待つ必要がある場合があります。 .forEach() メソッドが終了するのを待つ必要がある場合があります。これは、私がそれを行う方法です。

$q.when(array.forEach(function(item){ 
    //iterate on something 
})).then(function(){ 
    //continue with processing 
});

を待つには最適な方法ではない気がしなくもないですが。 .forEach() が終了するのを待つのに最適な方法ではない気がしてなりません。何か良い方法はないでしょうか?

どのように解決するのですか?

もし 非同期 のコードが forEach , forEach が非同期でない場合、例えばこのコードでは

array.forEach(function(item){ 
    //iterate on something 
});
alert("Foreach DONE !");

の後にアラートが表示されます。 forEach が終了した後に表示されます。

そうでない場合 (内部に非同期なものがある場合) は、ラップして forEach ループを プロミス :

var bar = new Promise((resolve, reject) => {
    foo.forEach((value, index, array) => {
        console.log(value);
        if (index === array.length -1) resolve();
    });
});

bar.then(() => {
    console.log('All done!');
});

クレジット ロランド=ベンジャミン=ヴァズ=フェレイラ