【发布时间】:2015-09-26 11:21:05
【问题描述】:
我开始在我的 js 应用程序(由 Babel 转译)中使用 async/await ES7 函数。
如果有错误,请纠正我,但它们是否仅适用于 Promise?如果是,这意味着我需要将常规回调函数包装到 Promise 中(顺便说一句,我目前正在做的事情)。
【问题讨论】:
-
它也适用于 thenables :-)
-
@Bergi thenables 是承诺的超集吗?我从未将它们视为独立的实体。
-
@Bergi 这是承诺 :)
-
@Mathletics:是的,exactly。 Thenables 是具有未知功能和来源的
then方法的对象。 -
是的,你也可以等待非承诺值,规范字面意思是
Promise.resolve将在该值上调用,因此普通值将保持普通值,然后可将其转换为安全的承诺大大地。thenable 意味着您可以在await中吸收来自不同库的承诺。
标签: javascript ecmascript-6 async-await babeljs ecmascript-2017