JavaScript中的锁定变量

JavaScript中的锁定变量,javascript,mutex,Javascript,Mutex,我正在制作一个Windows小工具,使用“ActiveXObject”从多个URL获取数据。我听说JavaScript是单线程的,但是ActiveXObject是并行运行的,它们修改了导致错误的news变量。有没有办法锁定一个变量,这样我就可以防止这种情况发生 顺便说一句,我尝试了xmlDocument.async=false,它可以工作,但会引入太多的延迟。我在寻找另一种选择 我的代码: for(var i = 0; i < noFeeds; i++){ var URL = Sy

我正在制作一个Windows小工具,使用“ActiveXObject”从多个URL获取数据。我听说JavaScript是单线程的,但是ActiveXObject是并行运行的,它们修改了导致错误的
news
变量。有没有办法锁定一个变量,这样我就可以防止这种情况发生

顺便说一句,我尝试了
xmlDocument.async=false
,它可以工作,但会引入太多的延迟。我在寻找另一种选择

我的代码:

for(var i = 0; i < noFeeds; i++){
    var URL = System.Gadget.Settings.readString("feedURL"+i);
    var xmlDocument = new ActiveXObject('Microsoft.XMLDOM');

    xmlDocument.onreadystatechange = function(){
        if(xmlDocument.readyState == 4){
            if( xmlDocument.getElementsByTagName("item").length != 0 )
                RSSChannel(xmlDocument, news);
            else
                AtomChannel(xmlDocument, news);
        }
    };
    xmlDocument.load(URL);
}
for(变量i=0;i
给他们一个克隆的对象吗?
ActiveXObject并行运行
——你有支持这一说法的文档吗?(他们在不同的线程上运行
onreadystatechange
事件)我找不到任何,但我没有查找太久。本页介绍ActiveXObject的
async