任何一个await语句后面的 Promise 对象变为reject状态,那么整个async函数都会中断执行。如果不catch, async函数直接抛出reject了, async里在await后面的代码是不会执行的。一般写catch有以下几种方法(推荐使用第一种方法):1 将await代码写在try catch代码块中, 这样当await抛出异常时直接被catch捕获,不会影响下面代码的运行。 async function f() { try { await Promise.reject('出错了'); } catch(e) { } return await Promise.resolve('hello world'); } f() .then(v => console.log(v)) 2 另一种方法是await后面的 Promise 对象再跟一个catch方法,处理前面可能出现的错误。 async function f() { await Promise.reject('出错了') .catch(e => console.log(e)); return await Promise.resolve('hello world'); } f() .then(v => console.log(v)) // 出错了 // hello world
任何一个
await
语句后面的 Promise 对象变为reject
状态,那么整个async
函数都会中断执行。如果不catch, async函数直接抛出reject了, async里在await后面的代码是不会执行的。一般写catch有以下几种方法(推荐使用第一种方法):
1 将await代码写在try catch代码块中, 这样当await抛出异常时直接被catch捕获,不会影响下面代码的运行。
2 另一种方法是
await
后面的 Promise 对象再跟一个catch
方法,处理前面可能出现的错误。