setTimeout(() => {
console.log(0);
});
new Promise(resolve => {
console.log(1);
setTimeout(() => {
resolve();
var p1 = new Promise((n1, n2) => {
n1(20)
})
p1.then(() => console.log(2));
console.log(3);
});
new Promise((n1, n2) => {
n1(20)
}).then(() => console.log(4));
}).then(() => {
console.log(5);
var p2 = new Promise((n1, n2) => {
n1(20)
})
p2.then(() => console.log(8));
setTimeout(() => console.log(6));
});
console.log(7);
1.宏任务先运行微任务后运行
2.then是微任务︰全局脚本和计时器是宏任务
setTimeout(() => {
console.log(0);
});
计时器是异步 计入宏任务列表中1
new Promise(resolve => {
console.log(1);
setTimeout(() => {
......
});