Javascript 在eventloop上,什么工作?微任务还是宏任务?
我正在调查事件循环。但我遇到了一个问题。在eventloop上以前什么工作?微任务还是宏任务? 如果我运行以下代码Javascript 在eventloop上,什么工作?微任务还是宏任务?,javascript,Javascript,我正在调查事件循环。但我遇到了一个问题。在eventloop上以前什么工作?微任务还是宏任务? 如果我运行以下代码 Promise.resolve().then(()=> console.log('Promise')); setTimeOut(()=>console.log("setTimeout"),0); console.log显示“承诺设置超时”; 但是根据一个回答 宏任务在微任务之前工作。宏任务在其他微任务之前处理,但在宏任务完成后,所有计划的微任务都将运行。由此产生的一个
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
方法 “当当前脚本结束时,宏任务结束,运行时查看微任务队列”,您对此有何看法?哪个宏任务结束?正在运行的当前脚本实际上是一个宏任务。这就是结束的宏任务。第一个宏任务中随机页面上的所有脚本都是一个宏任务吗?对吗?是的,初始脚本和您在控制台中运行的任何内容都是作为宏任务运行的。您对“当当前脚本结束时,宏任务结束,运行时查看微任务队列”的说法是什么。哪个宏任务结束了?正在运行的当前脚本实际上是一个宏任务。这就是结束的宏任务。第一个宏任务中随机页面上的所有脚本都是一个宏任务吗?是吗?是的,初始脚本和您在控制台中运行的任何内容都作为宏任务运行。