"No await in loop"


Code
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登録する.