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の配列を遅延を含めてシーケンシャルに実行することができます。