我正在尝试保存一些即使在重新启动浏览器时也应该可用的数据所以此数据应该保留。我正在使用Chrome Storage Sync
API。但是当我重新启动浏览器时,我使用chrome.storage.get
得到了空对象。
以下是我的示例代码:
SW.methods.saveTaskListStore = function() {
chrome.storage.sync.set({
'taskListStore': SW.stores.taskListStore
}, function() {
if (SW.callbacks.watchProcessSuccessCallback) {
SW.callbacks.watchProcessSuccessCallback(SW.messages.INFO_DATA_SAVED);
SW.callbacks.watchProcessSuccessCallback = null;
}
});
};
SW.methods.loadTaskListStore = function() {
SW.stores.loadTaskListStore = [];
chrome.storage.sync.get('taskListStore', function(taskFeed) {
var tasks = taskFeed.tasks;
if (tasks && !tasks.length) {
SW.stores.loadTaskListStore = tasks;
}
});
};
我想我使用的是错误的API。
答案 0 :(得分:1)
如果这不是某些复制粘贴错误,则存储在密钥taskListStore
下并尝试在密钥loadTaskListStore
下获取数据。
除此之外,根据 StorageArea.get() 上的文档,结果对象是一个对象,其键值映射中包含项。因此,在您的情况下,您应该这样做:
chrome.storage.sync.get("taskListStore", function(items) {
if (items.taskListStore) {
var tasks = items.taskListStore.tasks;
...