async/await - 个人知识记录

118 阅读1分钟

一、定义&作用

1、定义

  • async 关键字用于声明异步函数
  • await 关键字会暂停执行异步函数后面的代码,当异步函数执行完后,再执行后面代码

2、作用

  • 用同步方式,执行异步操作
  • Promise的语法糖

二、语法

  • async是一个位于function之前的前缀,只有async函数中,才能使用await。
  • await只能在async函数中使用
async function fn(){
  await new Promise((resolve,reject)=>{})
}

执行顺序

    let xxx = 1
    async function fn() {
      xxx = await new Promise((resolve, reject) => {
        // 此时还没赋值给xxx
        console.log(xxx) // 1
        setTimeout(() => {
          xxx = 2
          console.log(xxx) // 2
          resolve(3)
        }, 1000)
      })
      console.log(xxx) // 3
    }
    fn()
    // 结果:1 2 3

三、错误捕获

.catch 捕获Promise错误

;(async () => {
  await Promise.reject('错误').catch(err => {
    console.log(err)
  })
})()

try catch 捕获错误所有错误

;(async () => {
  try {
    await Promise.reject('错误')
  } catch (e) {
    console.log(e)
  }
})()