【发布时间】:2020-04-12 09:53:17
【问题描述】:
假设我将全局 Promise 对象替换为 Bluebird 承诺(例如支持取消)。如果我再用async/await写一个函数:
async function foo() {
const response = await fetch(...);
const result = doSomethingWith(response);
return result;
}
这里返回了什么样的Promise?
IIRC 当代码编译到 ES5 时,它确实会返回一个可取消的 Bluebird 承诺,因为 async/await 被转换为在内部使用全局 Promise 对象。但是在 ES7 中,async/await 是原生构造,它会使用全局对象中的 Promise 构造,还是硬编码使用原生构造?
【问题讨论】:
标签: javascript promise bluebird ecmascript-2016