【发布时间】:2019-01-30 21:24:58
【问题描述】:
我使用 Node.js v10.15.0 执行了以下代码
Promise.resolve()
.then(() => console.log('A'))
.then(() => console.log('B'))
.then(() => console.log('C'))
setImmediate(() => console.log('IMMEDIATE'))
Promise.resolve()
.then(() => console.log('D'))
.then(() => console.log('E'))
.then(() => console.log('F'))
由于在完整的函数中不涉及异步代码,因此我期望在输出之后
A
B
C
D
E
F
IMMEDIATE
但我得到了……
A
D
B
E
C
F
IMMEDIATE
据我了解情况,setImmediate() 调用告诉我们,没有一个console.log() 调用被推迟到下一个事件循环迭代。但是,为什么console.log() 调用的顺序会混淆?
【问题讨论】:
标签: javascript node.js promise event-loop