setTimeout()で処理を停止することができますが、ループ内でそのまま突っ込んでもほぼ同時に実行します。 array.forEach((value, index) => { setTimeout(() => { console.log('5秒ごとに実行') }, 5000); }); これだとforEach()が一気に回る -> 全てのコードを5秒後に実行するだけです。 index 番号を使う forEach()のコールバックの第二引数はループしている要素のインデックス番号が渡されるので、その分をsetTimeout()の第二引数に掛け合わせれば、0秒、5秒、10秒…後に実行されます。 array.forEach((value, index) => { setTimeout(() => { console.log('5秒ごとに実行') }, 5000 * index); });