delay
指定された時間だけコードの実行を遅らせます。
typescript
await delay(ms, options?);参照
delay(ms, options?)
コードの実行を特定の時間だけ停止したい場合にdelayを使用します。async/awaitと一緒に使用して、一定時間後に次のコードが実行されるようにできます。必要に応じてAbortSignalを通じて遅延をキャンセルすることもできます。
typescript
import { delay } from 'es-toolkit/promise';
async function example() {
console.log('開始');
await delay(1000); // 1秒間実行を遅らせます
console.log('1秒後に実行されます');
await delay(500); // さらに0.5秒遅らせます
console.log('さらに0.5秒後に実行されます');
}
example();AbortSignalを使用して遅延をキャンセルすることもできます:
typescript
async function cancellableDelay() {
const controller = new AbortController();
const { signal } = controller;
// 50ms後に遅延をキャンセルします
setTimeout(() => controller.abort(), 50);
try {
await delay(1000, { signal });
console.log('1秒が経過しました'); // このコードは実行されません
} catch (error) {
console.log('遅延がキャンセルされました'); // AbortErrorが発生します
}
}テストで非同期動作をシミュレートする際にも便利です。
typescript
async function simulateNetworkRequest() {
console.log('ネットワークリクエスト開始...');
await delay(2000); // 2秒間ネットワーク遅延をシミュレート
console.log('レスポンスを受信!');
return { data: 'test' };
}パラメータ
ms(number): 遅延させるミリ秒単位の時間です。options(DelayOptions, オプション): 遅延オプションです。signal(AbortSignal, オプション): 遅延をキャンセルできるAbortSignalです。
戻り値
(Promise<void>): 指定された時間後に完了するPromiseを返します。
エラー
AbortSignalが有効化されるとAbortErrorをスローします。

