Javascript 在eventloop上,什么工作?微任务还是宏任务?

Javascript 在eventloop上,什么工作?微任务还是宏任务?,javascript,Javascript,我正在调查事件循环。但我遇到了一个问题。在eventloop上以前什么工作?微任务还是宏任务? 如果我运行以下代码 Promise.resolve().then(()=> console.log('Promise')); setTimeOut(()=>console.log("setTimeout"),0); console.log显示“承诺设置超时”; 但是根据一个回答 宏任务在微任务之前工作。宏任务在其他微任务之前处理,但在宏任务完成后,所有计划的微任务都将运行。由此产生的一个

我正在调查事件循环。但我遇到了一个问题。在eventloop上以前什么工作?微任务还是宏任务? 如果我运行以下代码

Promise.resolve().then(()=> console.log('Promise'));
setTimeOut(()=>console.log("setTimeout"),0);
console.log显示“承诺设置超时”; 但是根据一个回答
宏任务在微任务之前工作。

宏任务
在其他
微任务
之前处理,但在宏任务完成后,所有计划的微任务都将运行。由此产生的一个推论是,如果已经安排了一些微任务,那么两个宏任务就不能一个接一个地运行

您当前的JS循环运行(运行
Promise
setTimeout
)实际上是一个
宏任务
Promise
调度微任务,并
setTimeout
调度宏任务


当前脚本结束时,
宏任务
结束,运行时查看微任务队列。它解析
承诺
,如果此运行中没有安排其他微任务,它将运行下一个
宏任务
。在您的例子中,这是
setTimeout
方法

宏任务
在其他
微任务
之前处理,但在宏任务完成后,所有计划的微任务都将运行。由此产生的一个推论是,如果已经安排了一些微任务,那么两个宏任务就不能一个接一个地运行

您当前的JS循环运行(运行
Promise
setTimeout
)实际上是一个
宏任务
Promise
调度微任务,并
setTimeout
调度宏任务


当前脚本结束时,
宏任务
结束,运行时查看微任务队列。它解析
承诺
,如果此运行中没有安排其他微任务,它将运行下一个
宏任务
。在您的例子中,这是
setTimeout
方法

“当当前脚本结束时,宏任务结束,运行时查看微任务队列”,您对此有何看法?哪个宏任务结束?正在运行的当前脚本实际上是一个宏任务。这就是结束的宏任务。第一个宏任务中随机页面上的所有脚本都是一个宏任务吗?对吗?是的,初始脚本和您在控制台中运行的任何内容都是作为宏任务运行的。您对“当当前脚本结束时,宏任务结束,运行时查看微任务队列”的说法是什么。哪个宏任务结束了?正在运行的当前脚本实际上是一个宏任务。这就是结束的宏任务。第一个宏任务中随机页面上的所有脚本都是一个宏任务吗?是吗?是的,初始脚本和您在控制台中运行的任何内容都作为宏任务运行。