我搞不懂哪个任务是先由事件循环来完成的。
原因如下。
堆栈溢出来自 这的答案
在这个宏任务完成后,所有可用的微任务都将被处理。
类似的例子来自 这 博客文章
setTimeout(() => console.log('Macro task'), 0);
Promise.resolve().then(() => console.log('Micro task'));
所以,这让我很困惑。我现在所理解的就是这个。
setTimeout()的回调函数插入到宏任务队列中。Promise的回调函数插入到微任务队列中。这个过程是我的理解,我是对的吗?
发布于 2020-02-27 04:09:16
由于,脚本本身被视为宏任务,因此在最后执行排队的微任务。
所以承诺是一个微任务,setTimeout回调是一个宏任务,但是脚本也是一个宏任务。
因此,脚本->承诺-> setTimeout
这里有更多详细信息:https://medium.com/javascript-in-plain-english/javascript-event-loop-y-promises-951ba6845899
发布于 2020-02-27 03:23:49
我认为,在脚本完成后,就会检查微任务队列。它是在检查宏任务队列之前。
有关详细信息,请参阅这里。
https://stackoverflow.com/questions/60425587
复制相似问题