簡體   English   中英

無法存儲和從Chrome存儲中檢索

[英]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.setchrome.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM