async和await

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()

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容