javascript - Node js可以在for循环期间通过外部函数修改数组吗?

标签 javascript arrays node.js

假设我的程序当前处于 for 循环中,但由于某种原因它花费的时间太长。可以说,不知何故,算法太慢了,循环遍历数组中的 100 个元素大约需要 500 毫秒。

当程序位于数组内部时,可能正在处理编号为 50 的元素,我是否有可能从网络收到传入命令,告诉我添加更多元素或从数组中删除元素?

一个实际的例子是匹配队列服务器。每次用户加入时,服务器都会通过调用函数来尝试尽可能最佳地匹配玩家,但队列中尚未被该函数“联系到”的玩家可能会简单地离开并退出。这会以某种方式破坏 for 循环搜索吗?

摘要:我有一个想要循环的数组,它可以在外部函数引起的 for 循环期间更改(添加/删除)其元素吗?或者在程序完成 for 循环后会调用这些函数吗? (就像在执行查询时锁定数据库以防止出现这些相同的问题一样)

最佳答案

JavaScript 在单个事件循环上运行。只要它正在运行您的函数,它就不会运行任何其他函数。

如果您收到一个事件,表明应将某个项目添加到数组中,则该事件的事件处理程序在当前运行的函数完成之前无法触发。

关于javascript - Node js可以在for循环期间通过外部函数修改数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38262682/

相关文章:

javascript - JS中如何用字符串调用数组名

javascript - 如何动态地将一大块 HTML 附加到 div 中?

javascript - 使用验证码脚本进行表单验证

javascript - 使用 jQuery 选择附加的链接按钮

c - C 中的加密数组

c - 字符串数组指针/数组名称的有效赋值是什么?

javascript - mongodb 驱动程序不释放资源

javascript - 圆形物体上的垃圾收集?

javascript - 如何在 javascript 中检查数据库条目是否早于 1 天

javascript - 使用磁带/ES6 单元测试测试 AMD 模块?