问答题879/1593【Promise第二题】下面代码的输出是什么?

1const promise = new Promise((resolve, reject) => { 2 console.log(1); 3 resolve('success') 4 console.log(2); 5}); 6promise.then(() => { 7 console.log(3); 8}); 9console.log(4);
难度:
2022-01-09 创建

参考答案:

过程分析

  • 从上至下,先遇到new Promise,执行其中的同步代码1
  • 再遇到resolve('success'), 将promise的状态改为了resolved并且将值保存下来
  • 继续执行同步代码2
  • 跳出promise,往下执行,碰到promise.then这个微任务,将其加入微任务队列
  • 执行同步代码4
  • 本轮宏任务全部执行完毕,检查微任务队列,发现promise.then这个微任务且状态为resolved,执行它。

结果

1 2 4 3

最近更新时间:2022-01-09

赞赏支持

预览

题库维护不易,您的支持就是我们最大的动力!