之前的文章大致分析了一个有关宏任务/微任务的题目,后来做了一个完整的扩展,可能不全,如果有考虑不到的,私信吧~
async function foo() {
console.log('foo');
return 'foo return';
}
async function bar() {
console.log('bar start');
let res = await foo();
console.log(res);
console.log('bar end');
}
console.log('script start');
setTimeout(function () {
console.log('setTimeout');
}, 0);
bar();
let promise = new Promise(function (resolve) {
console.log('promise executor');
resolve(1);
console.log('promise end');
}).then(function (res) {
console.log(res);
console.log('promise then');
setTimeout(() => {
console.log('promise setTimeout');
return 'promise1 return';
}, 0);
});
promise.then((res) => {
console.log(res);
console.log('promise then2');
});
console.log('script end');