在JavaScript中锁定变量

时间:2014-10-03 21:12:25

标签: javascript mutex

我正在创建一个Windows小工具,我使用" ActiveXObject" s从多个URL获取数据。我听说JavaScript是单线程的,但ActiveXObjects并行运行,它们会修改导致错误的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);
}

0 个答案:

没有答案