promise有三种状态:
- pending 挂起
- resolved
- rejected
then正常状态返回resolved,里面有报错则返回rejected
catch正常则返回resolved,里面有报错则返回rejected
只要是resolved状态后面的then都会继续执行下去
抛出错误会执行后面的catch,但是后面的catch没有错误则继续执行后面的then
只有当前没有抛出错误就不会执行后面的catch
async和await和promise的关系
-
执行async返回的是promise对象
-
await相当与promise的then
-
try...catch可捕获异常,代替了promise的catch
注意第4步和第5步的执行顺序,先执行同步代码,再执行异步代码