在Firefox扩展中使用setTimeout的竞争条件?

时间:2010-08-24 17:54:58

标签: firefox firefox-addon race-condition

当我在firefox扩展中调用setTimeout时会发生什么?是否存在多个回调可以同时运行的情况?

我的firefox扩展包含一系列我希望截取屏幕截图的网址。我的扩展程序打开5个选项卡,并将这些选项卡的URL设置为数组中的前5个URL。一旦页面在标签N中完成加载,我想等待30秒,截取屏幕截图,然后从阵列中弹出下一个URL并将其加载到选项卡N.该过程重复进行,直到URL列表为空。

如何确保每个网址只处理一次?如果我在java中写这个,我只会同步所有访问我的URL列表。如何在Firefox扩展程序中实现此目的?

1 个答案:

答案 0 :(得分:5)

Javascript完全是单线程的(新的Workers功能除外)。

没有两个回调可以同时运行。