const promise = new Promise((resolve, reject) => { console.log(1); resolve('success') console.log(2); }); promise.then(() => { console.log(3); }); console.log(4);
参考答案
过程分析
- 从上至下,先遇到
new Promise
,执行其中的同步代码1 - 再遇到
resolve('success')
, 将promise的状态改为了resolved并且将值保存下来 - 继续执行同步代码2
- 跳出promise,往下执行,碰到
promise.then
这个微任务,将其加入微任务队列 - 执行同步代码4
- 本轮宏任务全部执行完毕,检查微任务队列,发现
promise.then
这个微任务且状态为resolved,执行它。
结果
1 2 4 3
正文结束
Ctrl + Enter