async:是 Generator 函数的语法糖。返回一个Promise对象
await
- 后面是Promise对象,返回该对象的结果,如果不是返回对应的值。后面是一个thenable对象(即定义了then方法的对象),那么await会将其等同于 Promise 对象。
- async表示函数里有异步操作,await表示紧跟在后面的表达式需要等待结果。
使用形式:
1 | // 函数声明 |
错误处理
- 如果await后面的异步操作出错,那么等同于async函数返回的 Promise 对象被reject。
防止错误处理
- 多个await命令,可以统一放在try…catch结构中。
- 多个await命令后面的异步操作,如果不存在继发关系,最好让它们同时触发。
1
let [foo, bar] = await Promise.all([getFoo(), getBar()]);
- await命令只能用在async函数之中
- 可以保留运行堆栈