您的位置:首页 > Web前端 > JavaScript

js中setTimeout与Promise执行顺序

2019-06-04 16:56 363 查看
今天在公众号上看到一段代码,刚看到的时候遇到了一些问题,下面来看一下。
setTimeout(function() {
console.log(1);
})

new Promise(function(resolve, reject) {
console.log(2);
resolve(3)
}).then((res) => {
console.log(res)
})
console.log(4);

先上正确答案

2
4
3
1

分析原因

  1. 首先setTimeout会在下一轮时间循环执行,所以不会当时就打印。
  2. Promise对象在实例的时候其实就已经执行了内部的代码,所以2首先打印了。
  3. Promise.then() 在本轮事件循环结束之后执行,所以3会在4之后打印。
  4. 本轮事件循环结束,开始下一循环打印setTimeout中的1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: