事件循环(Event Loop)是ja
事件循环的工作流程可以分为以下几个步骤:
宏任务包括:setTimeout、setInterval、I/O操作、UI渲染等。微任务包括:Promise.then、MutationObserver、process.nextTick(Node.js)等。
微任务在当前宏任务执行完后立即执行,可以保证更快的响应速度。这种设计使得Promise等异步操作能够更及时地得到处理。
console.log('1');
setTimeout(() => console.log('2'), 0);
Promise.resolve().then(() => console.log('3'));
console.log('4');
输出顺序为:1、4、3、2。因为同步代码最先执行,然后是微任务,最后是宏任务。
Node.js的事件循环分为多个阶段,包括timers、pending callbacks、idle/prepare、poll、check和close callbacks。而浏览器的事件循环相对简单,主要分为宏任务和微任务两个队列。
深入理解事件循环机制对于ja