js学习之-------async 和 await

1、含义:

(1)async 用于申明一个 function 是异步的,async 函数返回一个 Promise 对象,可以使用 then 方法添加回调函数

(2)await 用于等待一个异步方法执行结果,当函数执行的时候,一旦遇到 await 就会先返回,等到触发的异步操作完成,再接着执行函数体内后面的语句!

注:语法规定,await 只能出现在 async 函数中

不过要注意:

如果await等到的不是一个 Promise 对象,那 await 不会阻塞后面的代码执行

如果await等到的是一个 Promise 对象,await 才会阻塞后面的代码,等着 Promise 对象 resolve,然后得到 resolve 的值,作为 await 表达式的运算结果:

2、对比:

假设:有3个步骤,每个步骤都是异步,而且每一个步骤都需要之前步骤的结果

(1)promise的写法:

(2)async/await的写法:

 

注:不管是promise,还是async/await,只是写法不同,为了方便而已,没有别的特殊用途!

意义:Promise 通过 then 链来解决多层回调的问题,但是参数传递太麻烦,async/await 可以进一步优化它!

posted @ 2021-06-02 16:28  程序员冒冒  阅读(1764)  评论(0编辑  收藏  举报