async 是“异步”的简写,而 await 的意思是等待,async/await 是建立在 promise 的基础上, 像 promise 一样,也是非阻塞的。
根本作用:让异步代码看起来、表现起来更像同步代码。
asyn:
async 会将其后的函数的返回值封装成一个 Promise 对象,而 await 会等待这个 Promise 完成,并将其 resolve 的结果返回出来。( Promise 的特点——无等待),所以在没有 await 的情况下执行 async 函数,它会立即执行,返回一个 Promise 对象,并且,绝不会阻塞后面的语句。
await:
await 等待的是一个表达式,这个表达式的计算结果是 Promise 对象或者其它值。 async 函数返回一个 Promise 对象,所以 await 可以用于等待一个 async 函数的返回值。
await 表达式的运算结果取决于它等的东西:
- 如果它等到的不是一个 Promise 对象,那 await 表达式的运算结果就是它等到的东西。
- 如果它等到的是一个 Promise 对象,await 就忙起来了,它会阻塞后面的代码,等着 Promise 对象 resolve,然后得到 resolve 的值,作为 await 表达式的运算结果。
总结: async 会将其后的函数的返回值封装成一个 Promise 对象,而 await 会等待这个 Promise 完成,并将其 resolve 的结果返回出来。
相比于优势:
1.Promise传递中间值⾮常麻烦,⽽async/await⼏乎是同步的写法
2.async/await 的优势在于处理 then 链:假设一个业务,分多个步骤完成,每个步骤都是异步的,而且依赖于上一个步骤的结果。使用promise需要在then链中传输值,使用then链。
3.async/await 可以使用try catch来捕捉异常,便于调试。
使用async、await就很简单。
async与await
promise执行顺序:
Promise本身是同步的立即执行函数,当在executor中执行resolve或者rejec

async/await是基于Promise的,能将异步代码写得更像同步代码。async函数返回Promise,await用于等待Promise结果,不阻塞后续同步代码。相比Promise,async/await更方便处理异步步骤和异常,简化了链式调用。执行顺序上,Promise同步开始,异步执行回调;async函数立即执行,await时跳出函数体,等待Promise完成后再继续。
最低0.47元/天 解锁文章

1475

被折叠的 条评论
为什么被折叠?



