asyn function A(){ return '星星';} A().then(result=>{console.log(result);})
function A(){ return new Promise((resolve,reject)=>{ setTimeout(function(){ var num = Math.ceil(Math.random()*20); //生成1-10的随机数 console.log('随机数生成的值:',num) if(num<=10){ resolve(num); } else{ reject('数字太于10了即将执行失败回调'); } }, 2000); }) return p; } async function B(){ console.log('a前'); A(); console.log('a后'); } B();
function A(){ return new Promise((resolve,reject)=>{ setTimeout(function(){ var num = Math.ceil(Math.random()*20); //生成1-10的随机数 console.log('随机数生成的值:',num) if(num<=10){ resolve(num); } else{ reject('数字太于10了即将执行失败回调'); } }, 2000); }) return p; } async function B(){ console.log('a前'); await A(); console.log('a后'); } B();
得出结论:异步执行时,遇到await时,会等待promise返回结果,之后再执行下面的代码,(阻塞后面代码)看起来像是同步一样 注意:await不会阻塞async以外的代码。