promise与setimeout的与执行顺序问题

const promise = new Promise((resolve, reject) => {
    console.log(1);
    resolve();
    console.log(2);
    setTimeout(()=>{
      console.log(7);
    })
});
promise.then(() => {
    console.log(3);
    setTimeout(()=>{
      console.log(6);
    })
});
setTimeout(()=>{
  console.log(5);
})
console.log(4);
阅读 2k
2 个回答

setTimeout(fn, 0)在下一轮“事件循环”开始时执行,Promise.then()在本轮“事件循环”结束时执行。

立即调用的话promise先执行,setTimeout后执行

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题