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