promise.then在event loop中的执行顺序?
有关JS事件循环,发现了以往认知外的情况:
代码
console.log("script start");
setTimeout(function () {
console.log("setTimeout");
}, 0);
Promise.resolve()
.then(function () {
console.log("promise1");
})
.then(function () {
console.log("promise2");
});
Promise.resolve().then(function () {
console.log("promise3");
});
console.log("script end");
结果:
script start
script end
promise1
promise3
promise2
setTimeout
问题
那三个promise.then中的log的顺序为什么不是1、2、3?而是1、3、2?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
1、script start
2、把setTimeout添加到宏任务
3、Promise.resolve().then,把promise1添加到微任务
4、Promise.resolve().then,把promise3添加到微任务
5、script end
6、promise1,把promise2添加到微任务
7、promise3
8、promise2