lodash の debounce を非同期関数(async , await)で使用する

import debounce from 'lodash/debounce';

// 非同期関数の例
async function fetchData(query) {
  // API呼び出しなど
  return await someAsyncOperation(query);
}

// debounce関数を使用してfetchDataをデバウンス
const debouncedFetchData = debounce(async (query, resolve) => {
  try {
    const result = await fetchData(query);
    resolve(result);
  } catch (error) {
    resolve(Promise.reject(error));
  }
}, 200); // 200ミリ秒のデバウンス時間

// デバウンスされた関数を呼び出す
function callDebouncedFetchData(query) {
  return new Promise((resolve) => {
    debouncedFetchData(query, resolve);
  });
}

// 使用例
callDebouncedFetchData('query').then(result => {
  console.log('結果:', result);
}).catch(error => {
  console.error('エラー:', error);
});
No.2434
12/23 14:15

edit