async 语法怎么捕获异常

async 函数内部的异常可以通过 *.catch()*或者 try/catch 来捕获,区别是
try/catch 能捕获所有异常,try 语句抛出错误后会执行 catch 语句,try 语句内后面的内容不会执行
catch()只能捕获异步方法中 reject 错误,并且 catch 语句之后的语句会继续执行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
async函数错误捕获,以登录功能为例
     async function getCatch () {
       await new Promise(function (resolve, reject) {
         reject(new Error('登录失败'))
      }).catch(error => {
         console.log(error)  // .catch()能捕获到错误信息
      })
       console.log('登录成功') // 但是成功信息也会执行
    }
     
    async function getCatch () {
       try {
         await new Promise(function (resolve, reject) {
           reject(new Error('登录失败'))
        })
         console.log('登录成功')  // try抛出错误之后,就不会执行这条语句
      } catch (error) {
         console.log(error)  // catch语句能捕获到错误信息
      }
    }