async function b(params) {
await console.log(params); // 有无await,执行情况不一样,或者返回promise也可以
}
async function a(params) {
const res = await b(params)
console.log('111', params);
}
a(1);
a(2);
console.log(3);
async function c() {
await new Promise(function(resolve){
console.log('promise1');
resolve('resolved');
}).then(function(data){
console.log(data);
});
}
c()
await后面的函数如果不是返回promise,会执行该函数,然后立即将await后面的代码放入微任务,再转移主线程控制权给外层作用域。
await后面的函数如果是返回promise,会执行该函数,然后转移主线程控制权给外层作用域。等外层执行完,再将await后面的代码放入微任务
仅是个人总结,写了好几个demo测试,得出来的结果。。