async

1.async

用法:在函数前面加上async 关键字,来表示它是异步。它可以用在函数声明,函数表达式,箭头函数和方法上。

async function fn1(){}
let y=async function fn2(){}
let f=async ()=>{}
calss que{
async qus();  //用在方法上
}

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

async function fn1(){
console.log(1);
return 2;
}
fn1().then(x=>{console.log(x)})

async关键字可以让函数具有异步特征,但总体上代码任然是同步的。

async function foo(){
console.log(1);
}foo();
console.log(2);
//1 2

 

 但是使用return关键字返回值,这个值就会被promise.resolve()包装成对象,然后默认返回它的值。

async function fun0(){
        console.log(1);
        return(1);
    }
    fun0().then(x=>{console.log(x)})
// 1 1
async function funp(){
        console.log('promise');
      return new Promise(function(resolve,reject){
         resolve('promise');
      })
    }
    funp().then(x=>{
        console.log(x)})
// promise promise

 

 

2.await 关键字

await 关键字 只能放在 async 函数内部, await关键字的作用 就是获取 Promise中返回的内容, 获取的是Promise函数中resolve或者reject的值,如果await 后面并不是一个Promise的返回值,则会按照同步程序返回值处理。

使用await关键字可以暂停异步函数代码的形成,等待promise解决。

 

 输出:6 8 3 4 5

 

posted @ 2021-09-29 15:12  陌菡  阅读(568)  评论(0)    收藏  举报