async 与 await
预计阅读时间: 2 分钟
async
- async 函数返回一个 Promise 对象
- promises 对象的结果由 async 函数执行的返回值决定
三种情况:
- 如果返回值是一个值,那么 Promise 对象的状态是 resolved,返回值是值;
- 如果返回值是一个 Promise 对象,那么 Promise 对象的状态是 resolved,返回值是这个 Promise 对象的返回值;
如果返回值是一个 rejected 状态的 Promise 对象,那么 Promise 对象的状态是 rejected,返回值是这个 Promise 对象的返回值。
- 如果 async 函数抛出异常,那么 Promise 对象的状态是 rejected,返回值是抛出的异常。
await
- await 右侧的表达式一般是一个 Promise 对象, 返回对应promise的结果。
- await 右侧是其他类型的值,会直接返回这个值。
注意
- await 只能在 async 函数中使用, 但是 async 函数中可以没有 await 语句。
- 如果await 的 promise 失败了,就会抛出异常,可以通过 try...catch 来捕获异常。