"No await in loop"
Code
最初のコードブロックの関数
2番目のコードブロックの関数
async function a () {
await Promise.all([1, 2, 3].reduce((result, el) => {
result.push(setTimeout(() => { console.log(el) }, 1000));
return result;
}, []));
}
async function b () {
const a = [1, 2, 3];
for (let i = 0; i < a.length; i++) {
await new Promise((resolve, reject) => {
setTimeout(() => {
console.log(a[i]);
resolve();
}, 1000);
});
}
}
Description最初のコードブロックの関数
a
は、非同期で実行されたsettimeoutをすべてトリガし、非同期で受信されたすべての結果が集約されたときに、これらの結果を順次返す.2番目のコードブロックの関数
b
は、await同期を使用して各非同期実行をブロックする.すなわち,1登録後,1秒後には2登録し,1秒後には3登録する.Reference
この問題について("No await in loop"), 我々は、より多くの情報をここで見つけました https://velog.io/@nninnnin7/no-await-in-loopテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol