【发布时间】:2020-09-06 14:00:24
【问题描述】:
在执行以下代码时,我得到的输出为:
1
4
3
未定义
2
console.log(1)
setTimeout(() => {
console.log(2)
});
Promise.resolve().then(() =>
console.log(3)
)
console.log(4)
我理解微队列任务是在栈中同步任务完成后执行的,微任务(promise call)执行后栈为空,宏任务会占用栈并执行,栈变空。如果我是正确的输出将是:
1
4
3
2
我不知道为什么在执行从微任务转移到宏任务时会出现 undefined。
【问题讨论】:
-
你是如何运行这段代码的?
-
@codemax 我正在浏览器控制台中运行这段代码。也作为节点应用程序运行。
标签: javascript node.js promise dom-events event-loop