【发布时间】:2020-08-23 20:14:31
【问题描述】:
我的理解
有人向我描述过,对于异步操作,一旦它们“加载”,它们的返回值就会进入事件队列。
还向我描述了Promises 和.thens 是异步操作,它们的返回值在微任务|PromiseJobs 队列中堆叠。
如果我们将'front-of-the-queue'定义为第一个异步操作'loaded'结果的目的地......
我知道调用堆栈/宏任务队列在加载事件队列或微任务队列的前端之前必须为空。
我的问题
事件队列和微任务队列有什么关系吗?
不相关的代码-sn-p
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);
【问题讨论】:
-
您在哪里读到过无法解释差异的微任务和宏任务?
-
@Bergi 这是我使用的:javascript.info/event-loop
-
"在每个宏任务之后,引擎会立即执行微任务队列中的所有任务,然后再运行任何其他宏任务或渲染或其他任何事情。" 很清楚,不是是吗?
标签: javascript