我在以下代码中观察到了这一点:
setTimeout(function(){console.log('setTimeout')});
Promise.resolve(1).then(function(){console.log('promise resolve')})
无论我执行多少次,promise 回调总是在 setTimeout 之前记录。
我的理解是,两个回调都计划在下一个滴答声中执行,我真的不明白发生了什么,这使得 promise 总是优先于超时。
最佳答案
Promise.resolve 调度一个微任务,而 setTimeout 调度一个宏任务。并且在运行下一个宏任务之前执行微任务。
关于javascript - promise 与 setTimeout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38752620/