用来处理异步的,其实是 Generator 函数的改进,背后原理就是 Promise
asyncfunctionf1(){
return"abc";//自动打包成Promise对象//与下面两个方式同等//return Promise.resolve('abc')//return new Promise( res => { resolve('abc') } );}
配合 await
await//会阻塞后面的逻辑代码,等主程序执行后,再执行后面的逻辑代码asyncfunctionf1(){
setTimeout(()=>{
return"f1";},2000);}functionf2(){
return"f2";}asyncfunctionf3(){
let a =awaitf1();//只有等待f1执行完后,才能执行以下代码let b =awaitf2();
console.log(a,c);}=> f1
=> f2
Promise.reject
asyncfunctionf1(){
return Promise.reject('ccc')}asyncfunctionf3(){
//let a = await f1();//只要遇到 reject 后面代码不执行//let b = await f2();//console.log(a,c);//使用:try{
let a =awaitf1();}catch(e){
console.log(e)}}