3 回答

TA贡献1828条经验 获得超3个赞
你可以,但你不需要。这取决于您是要使用await运算符(添加async关键字)还是使用then函数链接(无需添加它)。
如果你选择你把它放在错误的地方
return {
loadSmthForFilter: async function (diseases) {
return new Promise((resolve, reject) => {
$.get('/api/bla', { diseases })
.done(resolve)
.fail(reject);
});
}
顺便说一句,您应该直接返回$.get,因为这是一个承诺,无需将其包装在另一个承诺中。

TA贡献1884条经验 获得超4个赞
您不需要将此功能与 async 一起使用。该函数返回一个 Promise 但不等待一个。但是,我通常将 async 用于返回承诺以等待输出的函数。

TA贡献1848条经验 获得超6个赞
该async关键字在需要时非常有用,但它给函数调用增加了一些额外的开销,因为它在函数体内部包裹了一个 try/catch,它以不同的方式处理返回值并创建了一个 Promise。
所以,我async只在需要时使用,那是我想await在函数内部使用的时候,或者非常偶尔,当我想利用自动 try/catch 包装并且我正在使用某种异步操作时。
在您的情况下,这些情况似乎都不适用,因此我将删除承诺反模式(手动将承诺包装在另一个中),返回$.get()已经返回的承诺并执行以下操作:
return {
loadSmthForFilter: function (diseases) {
return $.get('/api/bla', { diseases });
}
};
添加回答
举报