2021.5.10 浅谈async / await

异步解决方案

(即你需要异步像同步一样执行,需要异步返回结果之后,再往下依据结果继续执行)

  • XMLHttpRequest对象,依靠回调处理异步代码,不便于维护(回调地狱)
  • promise 的.then方法附加回调函数,代码井然有序,(非阻塞)
  • async / await 基于promise实现,兼容promise的API,使用方式更像同步(非阻塞)

async 声明一个异步函数(asynchronous)

  • 自动将一个常规函数转换成一个promise,返回的也是一个promise对象
  • 只有async函数内部的异步操作执行完,才会执行then方法指定的回调
  • 异步函数内部可以使用await

await 暂停异步的功能执行(async wait)

  • 放置在promise调用之前,await强制其他代码等待,直到promise返回结果
  • 只能与promise一起使用,不适用与回调
  • 只能在async函数内部使用

async函数完全可以看作多个异步操作,包装成的一个 Promise 对象,而await命令就是内部then命令的语法糖。

  • 怎样容错呢

1.犹豫await后面的promise运行结果可能是rejected,最好把await放入try{}catch{}中
2.Await后的异步操作,如果彼此没有依赖关系最好同时触发,在下面场景一会有介绍
3.Await只能在async函数之中,如果在普通函数中,会报错

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值