JavaScript异步编程——Async/Await vs Promise
兼容性 提醒一下各位,Node 现在从版本 7.6 开始就支持 async/await 了。而就在前几天,Node 8已经正式发布了,你可以放心地使用它。 如果你还没有试过它,这里有一堆带有示例的理由来说明为什么你应该马上采用它,并且再也不会回头。 Async/await 对于那些从未听说过这个话题的人来说,如下是一个简单的介绍: Async/await 是一种编写异步代码的新方法。之前异步代码的方案是回调和 promise。 Async/await 实际上是建立在 promise 的基础上。它不能与普通回调或者 node 回调一起用。 Async/await 像 promise 一样,也是非阻塞的。 Async/await 让异步代码看起来、表现起来更像同步代码。这正是其威力所在。 语法 假设函数 getJSON 返回一个 promise ,而该 promise 的完成值是一些JSON对象。我们只想调用它,并输出该JSON,然后返回 "done" 。 如下是用 promise 实现的代码: const makeRequest = () => getJSON() .then(data => { console.log(data) return "done" }) makeRequest() 而这就是用 async/await 看起来的样子: const makeRequest =