gpt4 book ai didi

javascript - Chrome 浏览器事件循环与 Node 事件循环之间是否存在显着差异?

转载 作者:IT老高 更新时间:2023-10-28 22:10:57 25 4
gpt4 key购买 nike

Philip Roberts 出色地解释了浏览器事件循环 here在调用堆栈、事件循环、任务队列以及 webapis 等“外部”线程之间提供清晰的解释。我的问题是这些并行 Node 事件循环中的等效组件是否基本相同。也就是说,当我使用 Node 的文件和 web i/o 库进行调用时,这些是在堆栈之外发生的事情,其回调在任务队列中排队?

最佳答案

...when I make a call using Node's file and web i/o libraries, these are things that happen outside the stack whose callbacks are queued in a task queue?

是的,绝对的;它们是异步的,就像 Ajax 和 setTimeout 是异步的一样。他们在调用堆栈之外执行一些操作,当他们完成该操作时,他们将一个事件添加到队列中以供事件循环处理。

Node 的 API 提供了一种异步无操作,setImmediate .对于那个函数,我上面提到的“一些操作”是“什么都不做”,之后立即将一个项目添加到事件队列的末尾。

还有一个更强大的process.nextTick它将一个事件添加到事件队列的 front 中,有效地插入队列并使所有其他排队的事件等待。如果递归调用,这可能会导致其他事件的延迟延长(直到到达 maxTickDepth)。

关于javascript - Chrome 浏览器事件循环与 Node 事件循环之间是否存在显着差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25750884/

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