Skip to content

【Promise第七题】下面代码的输出是什么?

js

console.log('start') setTimeout(() => { console.log('time') }) Promise.resolve().then(() => { console.log('resolve') }) console.log('end')


## 参考答案:

## 解析

* 刚开始整个脚本作为一个宏任务来执行,对于同步代码直接压入执行栈进行执行,因此先打印出start和end。
* setTimout作为一个宏任务被放入宏任务队列(下一个)
* Promise.then作为一个微任务被放入微任务队列
* 本次宏任务执行完,检查微任务,发现Promise.then,执行它
* 接下来进入下一个宏任务,发现setTimeout,执行。

## 结果

'start' 'end' 'resolve' 'time'