Promise async/await

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 async/await_第1张图片

以上是常说的厄运回调金字塔,而使用Promise,利用then进行链式回调,将异步操作以同步操作的流程表示出来

Promise async/await_第2张图片

二、async/await

async 是“异步”的简写,而 await 可以认为是 async wait 的简写。所以应该很好理解 async 用于申明一个 function 是异步的,而 await 用于等待一个异步方法执行完成。

越来越多的人开始研究据说是异步编程终级解决方案的 async/await

做个简单的比较

Promise async/await_第3张图片

改用async/await

Promise async/await_第4张图片

或许以上两种方式你感觉差别不大。async/await的优势在于处理then链

程序逻辑:分多个步骤完成,每个步骤都是异步的,而且依赖于上一个步骤的结果

Promise async/await_第5张图片

使用Promise方式

Promise async/await_第6张图片

使用async/await

Promise async/await_第7张图片

如果把程序逻辑再改一下:业务要求改一下,仍然是三个步骤,但每一个步骤都需要之前每个步骤的结果。用Promise怎么写呢?

你可能感兴趣的:(Promise async/await)