JavaScript数组竞争条件/线程问题?

时间:2013-02-20 18:03:50

标签: javascript arrays

var globalArray = [];

此回调每秒最多触发100次

function EventCallback(param) {

globalArray.push(param);

}

我处理项目清单的程序的主要部分。

如果回调在这里修改数组的过程中被触发会发生什么?

while(globalArray.length > 0) 
{

ProcessListItem(globalArray.shift());

}

我遇到的问题是Firefox Spidermonkey javascript引擎有时会出现问题(竞争条件/线程问题?)并告诉我globalArray.push不是函数或其他奇怪的错误。

我想要实现的是让回调将项目添加到列表中,以便稍后处理它们。有没有更好的方法来编码?我是新手,所以任何建议都表示赞赏。感谢

1 个答案:

答案 0 :(得分:4)

这不会发生,因为JavaScript在您的浏览器中运行单线程。只有在浏览器没有其他任何操作时才会触发该事件。