【发布时间】:2015-06-02 16:25:59
【问题描述】:
这个问题让我困惑了很久,所以我决定寻求帮助,我相信没有确定的答案,可以公开讨论。
如果我的功能之一:
- 返回一个承诺
- 不需要
await任何其他功能 - 不要自己创建promise,它只是返回另一个函数返回的promise
- 请勿在 Promise 上调用
then或catch,以免涉及更多异步流程
这个函数应该是async吗?
例如:
async function updateUser(user) {
return await fetch('/some/url', {body: JSON.stringify(data)});
}
function growUp1(user) {
user.age++;
return updateUser(user);
}
async function growUp2(user) {
user.age++;
return await updateUser(user);
}
我认为growUp1 更简单,代码更简洁,babel 转换后性能更好(因为涉及的异步生成器更少),growUp2 在updateUser 在异步和同步之间切换时更健壮。
我们是否应该强制执行:
- 如果一个函数返回 Promise,它必须是
async - 如果函数依赖于
async函数,则它必须为async
还是让团队成员免费使用?
另一个问题可能是,如果一个函数只包含一些简单的then 调用承诺,它是否应该成为一个async 函数并在所有可能的情况下使用await 来消除then 调用?
【问题讨论】:
-
这个问题似乎只是在征求意见。我不确定它是否最适合 SO。归根结底,答案是做任何你认为最好的事情。
标签: javascript async-await ecmascript-harmony