我开始async/await
在我的 js 应用程序中使用 ES7 函数(由 Babel 编译)。
如果错了,请纠正我,但它们是否仅适用于 Promises?如果是,这意味着我需要将常规回调函数包装到 Promise 中(顺便说一句,我目前正在做的事情)。
我开始async/await
在我的 js 应用程序中使用 ES7 函数(由 Babel 编译)。
如果错了,请纠正我,但它们是否仅适用于 Promises?如果是,这意味着我需要将常规回调函数包装到 Promise 中(顺便说一句,我目前正在做的事情)。
当前(也可能是最终的)async/await 提案正在等待承诺,然后将其脱糖成类似 bluebird 的角色Promise.coroutine
,await
扮演yield
.
这是有道理的,因为 Promise 代表一个值 + 时间,而您正在等待该值变为可用。注意await
还等待所有其他语言中的类似 promise 的构造,例如 C# 或 Python (3.5+) 。
请注意,将回调 API 转换为 Promise 非常容易,并且一些库提供了在单个命令中执行此操作的工具。有关更多详细信息,请参阅如何将现有回调 API 转换为 Promise。
是的,你await
的承诺。
async function myFunction() {
let result = await somethingThatReturnsAPromise();
console.log(result); // cool, we have a result
}
http://pouchdb.com/2015/03/05/taming-the-async-beast-with-es7.html