async
Async函数返回值为promise对象。具体如下:
- 如果async的return值为非promise对象,那么Async函数返回值为一个成功的promise对象,如下:
结果:
结果:
- 如果async的return值为抛出异常,那么Async函数返回值为一个失败的promise对象,如下:
结果:
- 如果async的return值为promise对象,那么Async函数返回值跟着promise的结果走,
promise的状态为成功,则Async函数返回值为成功的promise对象。
promise的状态为失败,则Async函数返回值为失败的promise对象。
结果:
结果:
await
- await必须写在async函数中
- await右侧的表达式一般为promise对象
- await返回的是promise成功的值
- await的promise失败了,就会抛出异常,需要通过try…catch捕获处理
结果:
结果:
接下来举一个实际例子:
背景,getMessageList()方法为获取A,B,C,D,E的列表数据,需求是获取到这几个列表的信息后,才能连接mqtt:
async,await是ES8新特性。