我一直在尝试获取我的第一个chrome应用程序以利用chrome存储,但是直到代码执行后,代码才被解析。我在下面写了一个小例子说明我的意思。
有一个for循环执行3次。我每次都调用chrome.storage.sync.set
,但是代码永远不会进入函数的主体,并且我不会收到任何错误。对于chrome.storage.sync.get
调用也是如此,调试器从不进入函数主体。
执行了3次循环并退出循环后,下一行跳回到chrome.storage.sync
行。我每次都放置一个console.log
,以显示正在执行的语句。
下面是示例代码以及控制台输出。我想找出为什么我不能在正确的时间添加到chrome存储中。
请注意,我确实在manifest.json中启用了存储权限
代码:
//function to test storage
function testStorage() {
for (var i = 0; i < 3; i++) {
console.log(i + '/' + 2);
chrome.storage.sync.set({'key':'value'}, function() {
debugger;
console.log('set: ' + i);
});
chrome.storage.sync.get('key',function(result){
console.log(i + ' : ' + result.key);
});
}
console.log('loop complete');
}
输出:
0/2
1/2
2/2
loop complete
set: 3
3 : value
set: 3
3 : value
set: 3
3 : value