async&await是Promise的语法糖,使用他的目的就是用同步的写法,写异步的操作。async 是“异步”的简写, async 用于申明一个异步的 function,await 可以认为是 async wait 的简写,await 用于等待一个异步方法执行完成。当我们函数中需要返回值是promise对象时通常用async和await简化。

        async作为一个关键字放到函数之前,表示函数是异步的函数,异步函数也就意味着该函数的执行不会阻塞后面代码的执行,等async 函数返回一个promise 对象。

1.async

async可以作用在任何方法前, 返回值是一个Promise对象

async function a(){
 }
console.log(a());

var b = (async () => {
      })
console.log(b());

async函数内部return的返回值, 会成为then回调函数的参数

async function a() {
    return 123
}
a().then(res=>{
    console.log(res);
})

async作用的方法,如果内部出现报错,可以被promise的catch方法捕获

async function a() {
    console.log(a);
    let a = 123;
}
a().catch(err=>{
    console.log(err);
})

2. await

await只能作用在async修饰的方法中,不能单独使用,如果使用报错、

function a(){
    await //报错:await is not defined
    console.log(123);
}
a()

正常情况 await后面跟着一个Promise对象,返回的是Promise对象的成功后结果

async function a(){
    var b = await new Promise((resolve,reject)=>{
        resolve('123')
    })
    return b
}
a().then(res=>{
    console.log(res);
})

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐