javascript - 异步函数内的回调异步函数!是正确的?
问题描述
我希望这个重用异步函数能在很多地方使用!
const requestGetData = (callback?: Function): void => {
(async (): Promise<void> => {
try {
if (callback) {
await callback();
}
const data = await getDataApi();
setData(data);
} catch (error) {
console.log(error)
}
})();
};
我有不同的异步功能:
const requestUpdateData = async (): Promise<void> => {
await postUpdate();
setCountUpdate(count+1);
};
我将使用:
...
const handleUpdate=()=>{
requestGetData(requestUpdateData);
}
useEffect(()=>{
requestGetData()
},[])
我自定义 async 是否正确?有没有更好的办法 ?我想重用函数 requestGetData
解决方案
考虑到当你调用函数时,你用 调用它await
,这意味着你总是期望回调函数是异步的。我建议将回调参数的类型声明更新为() => Promise<any>
,我不明白为什么这需要成为 IIFE。否则,我觉得很好。
推荐阅读
- javascript - 如何在 VueJS 中创建排序功能?
- java - 如果作为额外活动传递给另一个活动,则列表变为空
- c++ - 正确使用带有类成员函数的模板
- firebase - Firebase Flutter 实时搜索用户
- r - 对 R 中的数值进行插入、删除、替换和转置操作
- python - 保存在磁盘上的 numpy 数组中的随机访问
- django - 如何按 id primary_key 过滤查询范围对象?姜戈
- angular - 即使将其包含在标签中,也未定义 Angular
- python - 使用热键时处理时间更长
- oracle - 使用 sqlplus 中的假脱机向文件名添加额外的数据/信息