0
var globalArray = [];

このコールバックは 1 秒あたり最大 100 回発生します

function EventCallback(param) {

globalArray.push(param);

}

アイテムのリストを処理するプログラムの主要部分。

ここで配列を変更している最中にコールバックが発生するとどうなりますか?

while(globalArray.length > 0) 
{

ProcessListItem(globalArray.shift());

}

私が直面している問題は、Firefox Spidermonkey JavaScript エンジンが時々バグを起こし (競合状態/スレッドの問題?)、globalArray.push が関数やその他の奇妙なエラーではないことを教えてくれることです。

私が達成しようとしているのは、コールバックにアイテムをリストに追加させて、後で処理できるようにすることです。これをコーディングするより良い方法はありますか?私はこれに慣れていないので、アドバイスをいただければ幸いです。ありがとう

4

1 に答える 1

5

JavaScript はブラウザでシングル スレッドで実行されるため、これは発生しません。このイベントは、ブラウザーが他に何もすることがない場合にのみ発生します。

于 2013-02-20T18:05:56.417 に答える