gpt4 book ai didi

javascript - 已解决的 Promises 需要多长时间才能进入任务队列?

转载 作者:行者123 更新时间:2023-11-30 14:25:26 25 4
gpt4 key购买 nike

我仍在尝试弄清楚事件循环以及事情发生的确切时间/任务队列何时被处理。

console.log('start');

Promise.resolve().then(function() {
console.log('promise');
});

console.log('end');

输出如下:

> "start"
> "end"
> "promise"

promise 不应该立即解决,因此调用堆栈将在之后(在打印“end”之前)立即为空,因此回调将在打印“end”之前作为任务处理吗?

我在这里显然遗漏了一些关于 a) 当已解决的 Promise 回调被添加到任务队列时或 b) 当任务在事件循环中被处理时。

最佳答案

使用您使用过的术语。任务队列仅在平台代码运行时执行——即所有同步代码执行完毕时。您的代码保证完全按照该顺序执行。

它们在事件循环之前运行(它们是“微任务”),这就是为什么您的then 在任何setTimeout 之前执行的原因.

关于javascript - 已解决的 Promises 需要多长时间才能进入任务队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52019223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com