async基本使用

async函数在使用上很简单,我们来看一下下面的例子

async function add(a,b){

  return a+b

}

add(1,2).then((res) =>{

  consoel.log(res); //3

})

在上面的例子中我们可以看到。async返回的是一个 prominse对象。可以想prominse一样使用。then的方法

还有一个特性,在async里有await 这个关键字。他是专属async的方法如果在函数外就会报错

在函数运行中遇到await会先把异步回调执行完成再去执行下面的内容。看下面这个例子

function wa(){
    return new Promise((resolve, reject) => {
        console.log('你');
        setTimeout(function(){
            resolve('回来了');
        })
    });
}
async function aw(){
    await wa().then(res => console.log(res))
    console.log('欢迎回家');
}

aw().then(res=>{
    console.log('咳咳');
})

它运行出来的结果就是

回来了

欢迎回家

咳咳

 这样我们就可以很好的控制异步回调的内容。看下面的例子

function fun1(){
    return new Promise((resolve,reject) =>{
        setTimeout(function(){
            resolve('1');
        },3000)
    })
}

function fun2(){
    return new Promise((resolve,reject) => {
        setTimeout(function(){
            resolve('2');
        },2000)
    })
}

async function all(){
    await fun1().then((res) =>{console.log(res)});
    await fun2().then((res) =>{console.log(res)});
    return '执行完成了'
}

all().then((res) =>{
    console.log(res);
})
//1
//2
//执行完成了

上面的代码我们想让在fun1执行完成以后再去执行fun2就可以使用这样的方法,这样要比嵌套的写法好进行维护。

这也是解决回调地狱的方法之一。

 

posted @ 2020-07-23 11:02  洗白白的佐助  阅读(1006)  评论(0编辑  收藏  举报