Promiseの配列に遅延機能を作成する方法


関数を実装し、その関数を使用してPromiseの配列をシーケンシャルに実行する方法を示します。

function delay(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}
async function executePromisesSequentially(promises, delayTime) {
  for (const promise of promises) {
    await promise;
    await delay(delayTime);
  }
}
// 使用例:
const promises = [
  new Promise(resolve => setTimeout(() => resolve('Promise 1 resolved'), 2000)),
  new Promise(resolve => setTimeout(() => resolve('Promise 2 resolved'), 1000)),
  new Promise(resolve => setTimeout(() => resolve('Promise 3 resolved'), 1500))
];
executePromisesSequentially(promises, 500)
  .then(() => console.log('All promises executed sequentially with delay'));

上記の例では、delay関数は指定されたミリ秒数だけ待機するPromiseを返します。executePromisesSequentially関数は、与えられたPromiseの配列をループ処理し、各Promiseの実行後に指定された遅延時間だけ待機します。これにより、Promisesが順番に実行されます。

実行例では、3つのPromiseを含む配列を作成し、それぞれのPromiseは指定された時間後に解決されるように設定されています。executePromisesSequentially関数を呼び出すことで、Promisesが順番に実行され、それぞれの実行後に500ミリ秒の遅延が発生します。

このようにすることで、Promiseの配列を遅延を含めてシーケンシャルに実行することができます。