async/await 用法,如何捕获异常?

6,291 阅读1分钟

async/await 用法,如何捕获异常? 🍉

我们首先来看一下 async/await的解释:

如果你在代码中使用了异步函数,就会发现它的语法和结构会更像是标准的同步函数。

现在我们一般使用promise来解决异步编程的问题,相比之前刚开始使用回调的时候,Promisethen方法显得非常好用,清晰,易懂。但是当我们如果有多个相互依赖的请求。

有两个问题: 1.难以理解执行顺序 2.代码不太好读

所以就诞生了asyncawait。(异步函数像是标准的同步函数)。将人类大脑的负担减少。

async 函数返回的是一个Promise对象,如果函数中有返回值。则通过Promise.resole()封装成Promise对象,当然我们就可以使用then()就可以取出这个值。async只能配套和await使用,单独使用就会报错。

async function foo(){
  let bar = await test()
}

await 后面接受一个Promise 对象。当Promise对象状态变化的时候,得到返回值。async函数完全可以看作多个异步操作,封装成的一个Promise对象,而await就是内部then命令的语法糖,用同步的书写方式实现异步代码。

错误处理

如果await后面的异步操作出错,那么等同于async函数返回的 Promise 对象被reject

防止出错的方法就是我们将其放在try/catch代码块中。并且能够捕获异常。

async function fn(){
    try{
        let a = await Promise.reject('error')
    }catch(error){
        console.log(error)
    }
}

如果对你有帮助的话,请点个👍吧!我们继续分享更多文章的~

本文使用 mdnice 排版