javascript - 是否应该将函数包装为异步
问题描述
我正在处理一些代码库,async
在这种情况下,我和一位同事讨论了是否将其放在函数名称之前。我会说是的,因为我们里面有一个 Promise,但这里可能是错误的。有什么建议吗?
return {
**async ???** loadSmthForFilter: function (diseases) {
return new Promise((resolve, reject) => {
$.get('/api/bla', { diseases })
.done(resolve)
.fail(reject);
});
}
解决方案
你可以,但你不需要。这取决于您是要使用await
运算符(添加async
关键字)还是使用then
函数链接(无需添加它)。
如果你选择你把它放在错误的地方
return {
loadSmthForFilter: async function (diseases) {
return new Promise((resolve, reject) => {
$.get('/api/bla', { diseases })
.done(resolve)
.fail(reject);
});
}
顺便说一句,您应该直接返回$.get
,因为这是一个承诺,无需将其包装在另一个承诺中。请参阅:什么是显式承诺构造反模式以及如何避免它?
推荐阅读
- r-markdown - kableExtra:更改表格脚注的字体大小
- python - Pycharm 不支持包依赖项
- java - 从java运行python脚本作为子进程
- powerbi - 具有开始和结束日期的数据的 Power BI 可视化
- c++ - 复制和交换习语与移动操作之间的交互
- php - Coinbase Pro API {“消息”:“无效签名”}
- python - 我应该使用列表推导而不是普通的 for 循环吗?
- xamarin.forms - ReactiveUI 路由替换 ViewModel
- ios - UICollectionView 在滚动完全停止之前没有响应
- java - Spring JDBC中newObject[]{...parameters..}和PreparedStatementSetter接口实现的区别?