本記事ではTypeScriptでsleep
関数を1行で実装した例を紹介します。
実装例
以下がTypeScriptでsleep
関数を1行で実装する例です。
const sleep = (ms: number) => new Promise(resolve => setTimeout(resolve, ms));
この関数は、指定したミリ秒だけ非同期で処理を遅延させるものです。setTimeout
をPromise
でラップすることで、非同期処理内で簡潔に待機処理を行えます。
使用例
async function example() {
console.log("Start");
await sleep(2000); // 2秒待機
console.log("End");
}
example();
実行結果
Start
(2秒待機)
End
上記のコードは、2秒待機してから”End”を出力します。sleep
関数は非同期処理のデバッグやシミュレーションに便利です。
用途とメリット
- デバッグや動作確認: 非同期処理をテストするとき、わざと処理を遅延させたいシーンがある。
- アニメーション制御: ユーザーインタラクションの間に短い休止を入れたい場合に便利。
- APIコールのレート制限回避: 短時間に連続してAPIを叩くと制限に引っかかる場合があるため、意図的にウェイトを入れる。
TypeScriptで実装することで、型安全性を確保したままシンプルな待機処理が行えます。特に多くの行を割かず、たった1行でsleep
を表現できるため、可読性も高いです。
まとめ
- typescriptでのsleep関数の実装は非常にシンプルで、
new Promise(resolve => setTimeout(resolve, ms))
を1行にまとめるだけ。 - 使い方は
await
を用いることで自然に読み書きができ、コードを追いやすくなる。 - 用途はデバッグ、APIコールの制限回避、アニメーション制御など幅広い。
短いコードながら、さまざまな場面で役立つ便利なテクニックです。ぜひ、あなたのTypeScriptプロジェクトに導入してみてください。