[英]Is their any relationship between the event-queue and the microtask queue?
我的理解
有人向我描述,对于异步操作,一旦它们“加载”,它们的返回值就会进入事件队列。
也有人向我描述Promise
s & .then
s 是异步操作,它们的返回值堆积在微任务|PromiseJobs 队列中。
如果我们将 'front-of-the-queue' 定义为第一个异步操作 'loaded' 结果的目的地......
我知道在事件队列或微任务队列的前端加载到它之前,调用堆栈/宏任务队列必须是空的。
我的问题
事件队列和微任务队列之间有什么关系吗?
不相关的代码片段
const f = () => { console.log('1') new Promise((resolve, reject) => resolve(2) ).then(resolve => console.log(resolve)) } f() counter = 0; for (let index = 0; index < 1000000000; index++) { counter = index; } console.log(3);
microtask
队列或job
队列是在 ES6 中随着 promise 的引入而引入的。
没有任何这样的关系但有区别,事件队列将任务放在队列的后面,在所有其他任务之后,而微任务队列将其放在前面并在当前函数之后立即执行任务调用堆栈被执行。
总体优先microtask
队列> event
队列(均有效节点JS和前端的JavaScript)。
更多解释在这里
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.