async/await与promise

async 是“异步”的简写,而 await 的意思是等待,async/await 是建立在 promise 的基础上, 像 promise 一样,也是非阻塞的。
根本作用:让异步代码看起来、表现起来更像同步代码。
asyn:
async 会将其后的函数的返回值封装成一个 Promise 对象,而 await 会等待这个 Promise 完成,并将其 resolve 的结果返回出来。( Promise 的特点——无等待),所以在没有 await 的情况下执行 async 函数,它会立即执行,返回一个 Promise 对象,并且,绝不会阻塞后面的语句。
await:
await 等待的是一个表达式,这个表达式的计算结果是 Promise 对象或者其它值。 async 函数返回一个 Promise 对象,所以 await 可以用于等待一个 async 函数的返回值。
await 表达式的运算结果取决于它等的东西:

  1. 如果它等到的不是一个 Promise 对象,那 await 表达式的运算结果就是它等到的东西。
  2. 如果它等到的是一个 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
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值