面试题:主线程、微任务、宏任务
let num = 0;
(async function a(num) {
console.log("1-", num);
b(num++);
console.log("2-", num);
})(num);
async function b(num) {
console.log("3-", num++);
await c(num++);
console.log("4-", ++num);
}
async function c(num) {
console.log("5-", num);
setTimeout(() => console.log("6-", num));
console.log("7", num);
await d(num++);
console.log("啊啦啦啦啦", ++num);
setTimeout(() => console.log("6-6", num));
}
async function d(num) {
console.log("哈哈哈", num);
setTimeout(() => console.log("第几个???", num));
}
new Promise((resolve) => {
console.log("8-", num);
resolve(num);
}).then((num) => {
console.log("9-", num++);
});
console.log("10-", num++ > num);
console.log("11-", num);
console.log("12-", ++num);
console.log("12-", num++);
答案:
1- 0
3- 0
5- 1
7 1
哈哈哈 1
2- 1
8- 0
10- false
11- 1
12- 2
12- 2
啊啦啦啦啦 3
9- 0
4- 3
6- 3
第几个??? 1
6-6 3