小编Cpt*_*ook的帖子

Mozilla WebExtension API存储-在有断点和无断点的情况下进行调试都会导致不同的输出


大家好,
我正在尝试为Mozilla-Firefox浏览器实现一个附件。以下脚本显示了一个我已经成功集成的backgorund脚本。它使用Mozilla WebExtension API存储。它被执行了,但是浏览器控制台上的日志使我惊讶。我交替登录没有任何东西,并且:

bla
bla
bla
Run Code Online (Sandbox Code Playgroud)

当且仅当在调试模式下在代码的重要行(尤其是最后5行)上设置断点时,我始终可以获得预期的结果:

bla
Run Code Online (Sandbox Code Playgroud)

输出如何取决于设置的断点。我不知道发生了什么,也无法在互联网上找到任何类似的问题。有人可以向我解释正在发生的事情以及我可以做些什么来防止错误的输出吗?

storeManager.js:

var localStore = chrome.storage.local;  
var StoreManager = function(){};

StoreManager.prototype.addItem = function(type, item){
    var thisRef = this;

    localStore.get(type, 
        function(obj){
            if(chrome.runtime.lasterror){
                console.log(chrome.runtime.lastError);
            }else{
                var oldArr = obj[type];

                if(oldArr === undefined)
                    oldArr = [];

                if(oldArr.indexOf(item) !== -1)
                    return;

                oldArr.push(item);
                thisRef.setItem(type, oldArr);
            }
        }
    );
}

StoreManager.prototype.removeItem = function(type, item){
    var thisRef = this;

    localStore.get(type, 
        function(obj){
            if(chrome.runtime.lasterror){
                console.log(chrome.runtime.lastError);
            }else{
                var oldArr = obj[type];

                if(oldArr === undefined)
                    return;

                var index = oldArr.indexOf(item);
                if(index === …
Run Code Online (Sandbox Code Playgroud)

javascript firefox-addon firefox-addon-webextensions

2
推荐指数
1
解决办法
145
查看次数