javascript - 每个事件循环处理多少个 JS 语句?
问题描述
在检查事件队列/每个滴答声/每个循环之前是否有一定数量的指令语句被处理(我认为是说同样的事情的方式?)
解决方案
在检查事件队列/每个滴答声/每个循环之前是否有一定数量的指令被处理(我认为是说同样的事情的方式?)
不,那里没有。
在 node.js 架构中,当从事件队列中拉出事件时,它与回调绑定。解释器调用该回调并且该回调运行完成。只有当它返回并且堆栈再次为空时,它才会检查事件队列中是否有另一个事件要运行。
因此,它与许多指令完全无关。node.js 将您的 Javascript 作为单线程运行,因此在 Javascript 片段之间没有时间切片,这听起来像是您的问题可能已经预料到了。一旦调用了对应于事件队列中的偶数的回调,该回调就会运行直到它完成并将控制权返回给解释器。
所以,它是这样的:
- 从事件队列中拉取事件
- 调用与该事件关联的 Javascript 回调
- Javascript 回调一直运行到完成,然后从回调中返回
- node.js 内部检查下一个事件的事件队列。如果有事件,请转到步骤 1 并重复
- 如果那里没有事件,则进入睡眠状态,直到将事件放入事件队列中。
实际上,这有点简化,因为有几种不同类型的事件队列具有优先顺序,其中一个优先顺序,但这描述了与您的问题相关的一般过程。
推荐阅读
- c# - 检测文件的每一行如何以 C# 结尾
- laravel - 获取属于其他记录的记录
- javascript - React:如何构建具有状态值的字符串?
- php - 如何使用使用 GET 方法获得的 id 我想通过搜索我提供的用于编辑该数据并使其成为新数据的数组来匹配该 id
- sas - 如何在SAS中删除组中的某些行
- python - Celery 任务状态:错误:在时间限制内没有节点回复
- powershell - Powershell:使用 EWS 搜索不在收件箱中的电子邮件
- java - Clabel 和 createText 未对齐
- sql - 按字符排序表格
- javascript - 提交表单时电子邮件值验证错误