Javascript 那么,为什么Promise.then';OnCompleted';函数在setTimeout回调之前激发?
有人能解释一下为什么promise'then'函数在setTimeout函数之前启动吗?我原以为setTimeout函数将首先安排在事件循环上,因此它将在promise.then函数之前运行Javascript 那么,为什么Promise.then';OnCompleted';函数在setTimeout回调之前激发?,javascript,promise,settimeout,Javascript,Promise,Settimeout,有人能解释一下为什么promise'then'函数在setTimeout函数之前启动吗?我原以为setTimeout函数将首先安排在事件循环上,因此它将在promise.then函数之前运行 setTimeout(() => { console.log('timer done, thought this would print second') }, 0) Promise.resolve().then(() => { console.log('promise don
setTimeout(() => {
console.log('timer done, thought this would print second')
}, 0)
Promise.resolve().then(() => {
console.log('promise done, thought this would print third')
})
console.log('synchronous, should print first')
输出:
'同步,应先打印'
'承诺完成,我想这会打印第三张'
“计时器完成,以为这会打印第二个”如果都是同步的,我们不会在“同步,应该先打印”之前打印“承诺完成”?好问题!答:它们不在同一事件队列上调度,事件循环将在其他回调之前运行承诺回调