Chrome浏览器事件循环与节点事件循环之间有明显区别吗?

约翰·加尔特

Philip Roberts出色地解释了浏览器事件循环从而在调用堆栈,事件循环,任务队列以及诸如webapis之类的“外部”线程之间提供了清晰的解释。我的问题是,这些事件是否与Node事件循环中的等效组件并行运行,并且它们被称为基本相同的东西。也就是说,当我使用Node的文件库和Web I / O库进行调用时,这些是发生在堆栈外部的事情,其回调在任务队列中排队吗?

炸药

...当我使用Node的文件和Web I / O库进行调用时,这些是发生在堆栈外部的事件,其回调在任务队列中排队吗?

是的,一点没错; 它们像Ajax一样setTimeout是异步的,并且是异步的。他们在调用堆栈之外执行一些操作,完成该操作后,便将事件添加到队列中,以供事件循环处理。

Node的API提供了一种异步no-op setImmediate对于该功能,我上面提到的“某些操作”是“不执行任何操作”,此后立即将一项添加到事件队列的末尾。

还有一个更强大的功能process.nextTick,它可以将事件添加到事件队列最前面,从而有效地排成一行,并使所有其他排队的事件等待。如果以递归方式调用,则可能导致其他事件(直到到达maxTickDepth)的延迟

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

浏览器的事件循环何时开始?

来自分类Dev

可以通过查看浏览器的事件循环来了解 JS 调度执行的顺序吗?

来自分类Dev

节点服务器是否有多个事件循环?

来自分类Dev

事件和状态之间是否有任何明显的区别

来自分类Dev

Chrome浏览器中的for-of循环

来自分类Dev

节点事件循环混乱

来自分类Dev

在循环内附加事件处理程序时浏览器性能出现问题

来自分类Dev

有和没有事件循环的线程之间的区别

来自分类Dev

Paper.js事件行为在浏览器之间有所不同

来自分类Dev

SVG click事件处理在浏览器之间有何不同?

来自分类Dev

浏览器之间的鼠标事件光标差异

来自分类Dev

浏览器关闭事件

来自分类Dev

关闭浏览器事件

来自分类Dev

在Chrome浏览器的单个框架中复制事件

来自分类Dev

现代浏览器不支持“ DOMAttrModified”事件吗?

来自分类Dev

手动打开的Chrome浏览器和使用chrome驱动程序打开之间有什么区别

来自分类Dev

了解带有扭曲和节点的事件循环

来自分类Dev

可以有更多的浏览器从同一PHP脚本的实例接收服务器事件吗?

来自分类Dev

在Google Chrome浏览器的某些网页中,字体更改没有明显原因

来自分类Dev

操作系统和操作系统版本之间的浏览器有什么区别吗?

来自分类Dev

启用触摸事件浏览器

来自分类Dev

浏览器关闭事件(按流程)

来自分类Dev

JS浏览器事件处理

来自分类Dev

检测浏览器关闭事件

来自分类Dev

Web浏览器点击事件

来自分类Dev

边缘浏览器上的devicemotion事件

来自分类Dev

获取事件以进行浏览器操作

来自分类Dev

WebDriverEventListener 不跟踪浏览器事件

来自分类Dev

浏览器自动导航事件

Related 相关文章

热门标签

归档