setTimeout(fn, 0) 为什么总是比 Promise 慢:事件循环的任务调度真相
2014年,Philip Roberts 在 JSConf EU 上做了一场名为"What the heck is the event loop anyway?“的演讲。这个演讲后来在 YouTube 上突破了百万播放量,成为理解 JavaScript 异步机制的入门必修课。然而,演讲中并未触及一个更深层的问题:当 setTimeout(fn, 0) 和 Promise.resolve().then(fn) 同时存在时,谁先执行? ...