async是什么
引用阮一峰老师的一句话概述:async是generator函数的语法糖。相比generator函数,新增了如下特性:
- 内置执行器,不再需要generator一样依赖co库作为执行器
- 关键字具有更好的语义性
- 适用性更强(后两点我认为都不重要,第一点才是关键)
async怎么用
async函数返回一个Promise,遇到await就返回,待await后的Promise执行完毕后继续执行后续的代码。
异常捕获
await后面跟随着是一个Promise,所以有可能reject,因此需要捕获异常。可以使用.catch()的方式捕获,或者常规的try{}catch{}的方式捕获,感觉后者更加符合习惯。