node.js的setImmediate的执行时间与机制

function con(){
    console.log(arguments[0])
}
process.nextTick(function A(){
    con(1);
    setImmediate(function(){
        con("imemediate1")
    })
 })
setTimeout(function(){
    con("timeOut")
},0)
setImmediate(function(){
    con("imemediate2")
})
setImmediate(function(){
    con("imemediate3")
})

输出结果是
image.png
setImmediate的执行是在下一次event-loop之前执行,那为什么3个setImediate的输出顺序是2->3->1,求详细解答

阅读 99
评论 5月23日提问
    2 个回答

    因為 immediate1 是屬於下一次事件循環的宏任務, immediate2immediate3 是當前事件循環的宏任務。

    评论 赞赏