【发布时间】:2020-08-26 17:05:10
【问题描述】:
我一直在玩 Promises,但我无法理解以下代码发生了什么:
const promise = new Promise((resolve, reject) => {
console.log('Promise started')
resolve('Success')
})
setTimeout(() => {
console.log('Log inside first setTimeout')
}, 0)
promise.then(res => {
console.log('Promise log after fulfilled ❌')
})
setTimeout(() => {
console.log('Log inside second setTimeout')
}, 0)
输出是:
Promise started
Promise log after fulfilled ❌
Log inside first setTimeout
Log inside second setTimeout
为什么不是下面的输出?
Promise started
Log inside first setTimeout
Log inside second setTimeout
Promise log after fulfilled ❌
在setTimeout(fn, 0)fn 调用和resolve()fn 调用之间,哪个优先?
是否依赖于浏览器的实现细节?
【问题讨论】:
标签: javascript node.js promise runtime event-loop