节点JS可以在for循环期间通过外部函数修改数组

node js can array be modified during for loop, by external function?

本文关键字:外部 函数 数组 修改 JS 循环 for 节点      更新时间:2023-09-26

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

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

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

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

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

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