遅らせて実行する関数を作ります。決めた時間がたってから、指定した関数を実行します。
| 引数 |
説明 |
型 |
Function |
遅延時間を受け取る関数を返します |
(duration: number) => Promise<U> |
| パラメーター |
説明 |
型 |
既定値 |
handler |
実行する関数 |
Function |
必須 |
...params |
関数に渡す引数 |
T[] |
必須 |
import { durationHandler } from 'ranuts';
const delayedFn = durationHandler((name) => {
console.log('こんにちは', name);
return 'done';
}, 'World');
// 1 秒後に実行する
const result = await delayedFn(1000);
console.log(result); // 'done'
import { durationHandler } from 'ranuts';
const delayedRequest = durationHandler(async (url) => {
const response = await fetch(url);
return response.json();
}, 'https://api.example.com/data');
// 2 秒後にリクエストを実行する
const data = await delayedRequest(2000);
console.log(data);
import { durationHandler, imageRequest } from 'ranuts';
// 遅らせて画像をリクエストする関数を作る
const delayedImageRequest = durationHandler(imageRequest, 'https://example.com/test.jpg');
// 3 秒後に実行する
const latency = await delayedImageRequest(3000);
console.log('遅延:', latency, 'ms');
- カリー化された関数:遅延時間を受け取る関数を返すので、関数型のスタイルに馴染みます。
- 非同期にも対応:非同期関数にも対応し、実行が終わるまで待ちます。
- エラーの扱い:関数の実行が失敗すると、Promise は reject されます。
- 使いどころ:遅らせての実行、時間を決めた処理、ネットワークの計測などでよく使われます。