为什么会有event loop
因为js是单线程的,如果某段程序需要等待一会再执行,后面的程序都会被阻塞,这样也就带来了一些问题。为了解决这个问题,js出现了同步和异步两种任务,两种任务的差异就在于执行的优先级不同。event loop就是对任务的执行顺序做了详细的规范。
同步和异步任务
异步任务:异步任务分为宏任务和微任务。
常见的微任务有:Promise.then(),.then中的逻辑是微任务;process.nextTick(node环境)。
常见的宏任务有:setTimeout、setInterval、setImmediate(node环境)、xhr(发送网络请求),callback。
同步任务:除了上面的这些情况,都属于同步任务。
任务的执行顺序
先到后:同步任务-> 微任务 -> 宏任务。
什么是event loop
事件循环(event loop)就是 任务在主线程不断进栈出栈的一个循环过程。任务会在将要执行时进入主线程,在执行完毕后会退出主线程。
JavaScript的单线程特性导致了eventloop的存在,以解决程序执行阻塞问题。同步任务先执行,接着是微任务,然后是宏任务,形成一个不断循环的过程。异步任务分为宏任务(如setTimeout)和微任务(如Promise.then,Node.js的process.nextTick),它们决定了代码的执行顺序和非阻塞特性。

被折叠的 条评论
为什么被折叠?



