async和await

2020-12-14  本文已影响0人  救救小亮

async 是一个修饰符,async 定义的函数会默认的返回一个Promise对象resolve的值,因此对async函数可以直接进行then操作,async函数返回的值即为then方法的传入函数

示例


  async function a(){
    return 'async函数返回的参数';
  }

  a().then(res=>{
    console.log(res) //async函数返回的参数
  })

await 关键字只能放在 async 函数内部, await关键字的作用就是等待右侧表达式返回的内容,如果右侧表达式返回的不是Promise对象,则该返回值就是await等到的值;如果右侧表达式返回的是Promise对象,await就会阻塞后面的代码,等待resolve或者reject返回值

示例


async function c(){
    var a = await 1
    var b = await new Promise((resolve,reject)=>{
        setTimeout(()=>{
            resolve('5秒')
        },5000)
    })
    console.log(a,b) //5秒后输出 1 5秒
}
c()

若执行reject返回,await会将reject的返回值作为异常抛出,搭配trycatch使用可以使代码更加清晰

示例

async function c(){
    try{
        var b = await new Promise((resolve,reject)=>{
            setTimeout(()=>{
                resolve('5秒')
            },5000)
            reject('异常原因')
        })
    } catch (err){
        console.log(err) // 异常原因
    }
}
c()

上一篇 下一篇

猜你喜欢

热点阅读