一、规则
js的执行机制是单线程的。
new Promise((resolve,reject)=>{
})
for (var i = 0; i < 10; i++) {setTimeout(() => {console.log(i);}, 0);}//for 循环时同步任务直接去执行了// 遇到宏任务不执行,放入宏任务队列// set1,set2,set3...set10// i<9 i++ i是10//没有微任务 执行宏任务,宏任务的i是10了所以打印出来的是10console.log("end", i);//结论: 先打印 'end 10' 10个10
setInterval(() => {console.log(1);}, 1000);宏任务new Promise((resolve, reject) => {console.log(2);//同步任务 1resolve(3);//异步任务1}).then(res => {console.log(res);});console.log(5); 同步任务2//2531先执行所有的同步任务,然后是微任务,最后是宏任务
new Promise(resolve => {console.log(6); //1resolve();}).then(res => {console.log(7);//第一次存放微任务队列});async function first() {console.log(1);//3await second();console.log(2);//第二次存放微任务队列}setTimeout(() => {console.log(4);//宏任务最后执行});console.log(5);//2first();console.log(8);//同步任务async function second() {console.log(3);//4}//65138724总结:new Promise()相当于同步,先执行 同步任务执行完以后
