Skip to content

durationHandler

遅らせて実行する関数を作ります。決めた時間がたってから、指定した関数を実行します。

API

durationHandler

戻り値

引数説明
Function遅延時間を受け取る関数を返します(duration: number) => Promise<U>

パラメーター

パラメーター説明既定値
handler実行する関数Function必須
...params関数に渡す引数T[]必須

使用例

基本的な使い方

js
import { durationHandler } from 'ranuts';

const delayedFn = durationHandler((name) => {
  console.log('こんにちは', name);
  return 'done';
}, 'World');

// 1 秒後に実行する
const result = await delayedFn(1000);
console.log(result); // 'done'

API リクエストを遅らせる

js
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);

networkSpeed と組み合わせる

js
import { durationHandler, imageRequest } from 'ranuts';

// 遅らせて画像をリクエストする関数を作る
const delayedImageRequest = durationHandler(imageRequest, 'https://example.com/test.jpg');

// 3 秒後に実行する
const latency = await delayedImageRequest(3000);
console.log('遅延:', latency, 'ms');

補足

  1. カリー化された関数:遅延時間を受け取る関数を返すので、関数型のスタイルに馴染みます。
  2. 非同期にも対応:非同期関数にも対応し、実行が終わるまで待ちます。
  3. エラーの扱い:関数の実行が失敗すると、Promise は reject されます。
  4. 使いどころ:遅らせての実行、時間を決めた処理、ネットワークの計測などでよく使われます。

MIT ライセンスのもとで公開されています。