Promise async/await
参考 初探promise promise 理解 JavaScript 的 async/await async 函数的含义和用法 Syntax
一、Promise
什么是promise
The Promise object is used for asynchronous computations. A Promise represents a single asynchronous operation that hasn't completed yet, but is expected in the future.
译文:Promise对象用于异步操作,它表示一个尚未完成且预计在未来完成的异步操作。
为什么要用promise
Promise的真正强大之处在于它的多重链式调用,可以避免层层嵌套回调。
如果我们在第一次ajax请求后,还要用它返回的结果再次请求,层层嵌套结果是这样:
以上是常说的厄运回调金字塔,而使用Promise,利用then进行链式回调,将异步操作以同步操作的流程表示出来
二、async/await
async 是“异步”的简写,而 await 可以认为是 async wait 的简写。所以应该很好理解 async 用于申明一个 function 是异步的,而 await 用于等待一个异步方法执行完成。
越来越多的人开始研究据说是异步编程终级解决方案的 async/await
做个简单的比较
改用async/await
或许以上两种方式你感觉差别不大。async/await的优势在于处理then链
程序逻辑:分多个步骤完成,每个步骤都是异步的,而且依赖于上一个步骤的结果
使用Promise方式
使用async/await
如果把程序逻辑再改一下:业务要求改一下,仍然是三个步骤,但每一个步骤都需要之前每个步骤的结果。用Promise怎么写呢?