js运行机制
2021-09-14 10:03:30 0 举报
宏任务和微任务的理解
作者其他创作
大纲/内容
script队列js文件执行完毕执行
8.发现微任务执行完毕,调用宏任务的setTimeout队列
console.log(3);
任务队列
整体代码
调用栈(call stack)
Promise队列then()此时输出5
3.Promise会立即执行,此时会打印 14.resolve()执行.then则会进入任务队列被分配到micro-task(微任务)的Promise队列中此时会打印2
2.进入任务队列
微任务(micro-task)
宏任务(macro-task)
6.调用栈清空,弹出调用栈
7.开始执行微任务
setTimeout队列timer()此时输出4
5.同步代码此时会打印3
new Promise((resolve) =>{ console.log(1); for (var i = 0; i < 10000000; i++) { i === 9999999 && resolve(); } console.log(2); }).then(() => { console.log(5); });
9.setTimeout队列执行完毕之后,调用微任务,发现有未执行的微任务先执行,没有就去宏任务执行下一个队列,宏任务也没有,此次调用结束
1.setTimeout
0 条评论
下一页