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

浙公网安备 33010602011771号