为什么chrome.sync.set仅更新一次值

时间:2018-07-11 17:27:06

标签: google-chrome google-chrome-extension

我希望扩展程序计算打开浏览器的次数。 以下是应做的代码,但不能作为 预期。 为什么?

chrome.runtime.onStartup.addListener(function() {  
    chrome.storage.sync.get({'number' : 1}, function(result) {
        // prints 1 the first time, then keeps printing 2 all the time, why?
        console.log("Old number is " + result.number);

        // Trying to increment 'number' value by 1
        chrome.storage.sync.set({'number' : (result.number + 1)},
            function() {})
    });
});

1 个答案:

答案 0 :(得分:0)

我不确定您应该在get中使用“ 1” ...

chrome.runtime.onStartup.addListener(function() {  
    chrome.storage.sync.get(['number'], function(result) {
        let number;
        if ('number' in result)
            number = result.number;
        else
            number = 1;

        // prints 1 the first time, then keeps printing 2 all the time, why?
        console.log("Old number is " + number);

        number += 1;

        // Trying to increment 'number' value by 1
        chrome.storage.sync.set({number: number},
            function() {console.log("value as set to " + number);});
    });
});

此代码可能应该在“后台脚本”上,并且唯一可以显示任何内容的控制台是您从“工具,更多工具,扩展”中打开的控制台,然后单击列出的扩展中的查看链接。

如果您在评论中提到同步问题,可以尝试使用chrome.storage.local.get / set

我认为对于您的工作,这会更好。