[英]Can't Store and Retrieve From Chrome Storage
首先,如果這個問題與其他問題聽起來相似,我會道歉。 我做了很多研究,我想我不能把我的情況和其他人對這個API的問題拼湊起來。
我正在創建一個Chrome應用,它基本上展示了從Chrome Storage API存儲和檢索數據的功能。 一旦我很樂意這樣做,我可以在我正在制作的更大的應用程序中實現它。
但是,我似乎無法讓基本應用程序正常工作。 這是相關的代碼:
“storage.js”
function Store(key,data) {
console.log("Data: " + data);
chrome.storage.local.set({ key: data }, function () {
console.log("Secret Message Saved!");
});
}
function Retrieve() {
chrome.storage.local.get(function (data) {
console.log("The data stored is:" + data);
});
}
“master.js”(主要劇本)
var myKey = "secretMessage";
var myData = "Pssst!";
Store(myKey, myData);
Retrieve(myKey);
console.log("Done!");
我不知所措。 我得到的輸出是:
Data: Pssst!
Done!
Secret Message Saved!
The data stored is:[object Object]
似乎我存儲錯誤或檢索錯誤。
我查看了文檔。 也許我只是不理解API的概念以及它能夠存儲和檢索的內容。 我對使用javascript語言編碼很新。 任何幫助將非常感激!
謝謝!
首先, chrome.storage.local.set
和chrome.storage.local.get
是異步方法,您必須等到chrome.storage.local.set
將數據存儲在存儲中,然后您應該調用chrome.storage.local.get
。
其次, chrome.storage.local.get
正在返回一個對象。 您可以使用.toString()
或JSON.stringify(data)
查看對象
function Store(key,data, callback) {
console.log("Data: " + data);
chrome.storage.local.set({ key: data }, function () {
console.log("Secret Message Saved!");
callback(true);
});
}
function Retrieve(success) {
chrome.storage.local.get(function (data) {
console.log("The data stored is:" + JSON.stringify(data));
});
}
var myKey = "secretMessage";
var myData = "Pssst!";
Store(myKey, myData, Retrieve);
console.log("Done!");
我已經使用了這個回調方法沒有問題。
function loadSelectedStyle(){
chrome.storage.local.get('defaultColorSet', function (result) {
console.log(result.defaultColorSet);
defaultColors(result.defaultColorSet);
});
}
如果您只是將“結果”寫入控制台日志,則可以通過向結果添加密鑰來查看整個對象,從而獲得數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.