节点js可以在for循环期间通过外部函数修改吗?

时间:2016-07-08 08:58:02

标签: javascript arrays node.js

让我们说我的程序目前处于for循环中,但由于某种原因,它花了太长时间。让我们说,算法在某种程度上是如此之慢,以至于需要大约500ms才能遍历数组中的100个元素。

当程序在数组中时,也许可以使用元素号50,我从网络获取传入命令,告诉我添加更多元素或从数组中删除元素吗?

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

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

1 个答案:

答案 0 :(得分:3)

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

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