ES6知识点整理之----async----语法

1、async函数返回一个 Promise 对象。

2、async函数内部return语句返回的值,会成为then方法回调函数的参数。

async function f() {
  return 'hello world';
}

f().then(v => console.log(v))
// "hello world"

3、async函数内部抛出错误,会导致返回的 Promise 对象变为reject状态。抛出的错误对象会被catch方法回调函数接收到。

4、只有async函数内部的异步操作全部执行完,才会执行then方法指定的回调函数。

5、await命令后面是一个 Promise 对象。如果不是,会被转成一个立即resolve的 Promise 对象。

async function f() {
  return await 123;
}

f().then(v => console.log(v))
// 123

await命令后面的 Promise 对象如果变为reject状态,则reject的参数会被catch方法的回调函数接收到。

6、只要一个await语句后面的 Promise 变为reject,那么整个async函数都会中断执行。

  • 如果希望不要中断,可以将await放在try...catch结构里面。
  • 另一种方法是await后面的 Promise 对象再跟一个catch方法,处理前面可能出现的错误。

7、使用注意点:

  • 最好把await命令放在try...catch代码块中
  • 多个await命令后面的异步操作,如果不存在继发关系,最好让它们同时触发
  • await命令只能用在async函数之中,如果用在普通函数,就会报错。
  • 如果希望多个请求并发执行,可以使用Promise.all方法。
  • 目前,esm模块加载器支持顶层await,即await命令可以不放在 async 函数里面,直接使用。必须使用esm加载器,才会生效。

 

转载于:https://www.cnblogs.com/adhehe/p/9682774.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值