Javascript chrome.storage.local有时不工作

Javascript chrome.storage.local有时不工作,javascript,google-chrome-extension,local-storage,Javascript,Google Chrome Extension,Local Storage,我正在创建一个chrome扩展,这是我第一次使用JS或async BG脚本获取JSON,并在初始化chrome/extension时将所有数据保存到本地存储中。一旦用户导航到特定页面,内容脚本就会启动并根据本地存储检查页面中的特定ID。如果找到id,它将创建一个元素,旁边有一个图标 它很好用。然而,当我重新加载页面时,从本地存储中没有得到任何信息,即使我想从那里记录所有信息,也没有记录任何信息。好像仓库是空的 可能与异步有关?奇怪的是,代码的最内部部分仍然记录了一个事实,即在存储中找不到id,因

我正在创建一个chrome扩展,这是我第一次使用JS或async

BG脚本获取JSON,并在初始化chrome/extension时将所有数据保存到本地存储中。一旦用户导航到特定页面,内容脚本就会启动并根据本地存储检查页面中的特定ID。如果找到id,它将创建一个元素,旁边有一个图标

它很好用。然而,当我重新加载页面时,从本地存储中没有得到任何信息,即使我想从那里记录所有信息,也没有记录任何信息。好像仓库是空的

可能与异步有关?奇怪的是,代码的最内部部分仍然记录了一个事实,即在存储中找不到id,因此没有跳过任何内容

我的内容脚本如下所示:

var storage = chrome.storage.local;

loopThatList();

function loopThatList() {
    var logoElements = document.querySelectorAll('.class > a:not(.class)');
    chrome.runtime.sendMessage({removeRatedValueObj: "get"}, function(response) {
        console.log(response.removeRatedValueObj);
        chrome.storage.local.get(function(result){console.log(result)});
        logoElements.forEach(function(item, i) {
            var href = item.href;
            var regex = /(?:https:\/\/www\.site\.com\/stuff\/|-[^$]+)/gm;
            var id = href.replace(regex, '');
            storage.get(id, function(result){
                var hasRating = item.parentNode.parentNode.querySelector('.rating > span');
                if (typeof(hasRating) !== "undefined" && hasRating !== null && response.removeRatedValueObj === "true") {
                    item.parentNode.parentNode.remove();
                }
                else {
                    if(!isEmpty(result)) {
                        //stuff;
                    }
                    else if (isEmpty(result)) {
                        console.log("Cannot find id in storage");
                    }
                }
            });
        });
    });
}

function isEmpty(obj) {
    for(var key in obj) {
        if(obj.hasOwnProperty(key))
            return false;
    }
    return true;
}

数据被保存到BG脚本中的本地存储中,根据我所读到的,当您启动chrome或打开扩展时会发生这种情况。(我已经建立了日志记录,它支持这一点)因此,在内容脚本想要访问本地存储之前,数据就已经在那里了。还是我遗漏了什么?至于幸运的conincidence,我可以刷新页面100次,数据将加载100/100。这种情况只有在一段时间内没有使用该选项卡时才会发生。在没有看到后台脚本中的真实代码的情况下,我所拥有的只是“BG脚本获取JSON并将所有数据保存到本地存储”,因此我假设这种情况发生在onMessage listener中。但是有了新的信息,这听起来像是Chrome中的一个bug。我将编辑主要帖子,对此感到抱歉。你认为现在正确的行动是什么?在哪里报告它,这样它就不会失败?不久前我看到了一个chromium论坛。编辑:找到此页面您可以通过手动冻结/放弃
chrome://discards
错误报告网站的短URL为。将尝试返回报告。谢谢你,我不知道
chrome://discards