语法
js
let results = browser.storage.<storageType>.get(
keys // null, string, object or array of strings
)
参数
keys-
用于识别要从存储中检索的项的键(
string)或键(字符串数组,或指定默认值的对象)。如果在此处传递空对象或数组,则会检索一个空对象。如果传递null或未定义的值,将检索整个存储内容。
返回值
一个 Promise,它解析为一个 results 对象,其中包含 keys 中在存储区域中找到的每个键的键值对。当 keys 是一个对象时,存储中未找到的任何键将取自 keys 对象中的默认值。
如果操作失败,Promise 将被拒绝并附带错误消息。
如果未设置托管存储,则返回 undefined。
警告:在 Firefox 中,如果扩展的托管存储尚未通过 原生清单 或使用 3rdparty 企业策略 进行配置,则在使用此函数访问托管存储时会抛出异常(请参阅 Firefox bug 1868153)。可以通过捕获错误来避免此问题。此问题与 storage.managed_schema 清单项缺乏支持有关(请参阅 Firefox bug 1771731)。
示例
假设存储包含两个项目
js
// storage contains two items,
// "kitten" and "monster"
browser.storage.local.set({
kitten: { name: "Mog", eats: "mice" },
monster: { name: "Kraken", eats: "people" },
});
为 Promise 定义成功和失败处理程序
js
function onGot(item) {
console.log(item);
}
function onError(error) {
console.log(`Error: ${error}`);
}
不带 keys 参数,检索所有内容
js
let gettingItem = browser.storage.local.get();
gettingItem.then(onGot, onError);
// -> Object { kitten: Object, monster: Object }
使用空 keys 参数,不返回任何内容
js
// with an empty array, retrieve nothing
let gettingItem = browser.storage.local.get([]);
gettingItem.then(onGot, onError);
// -> Object { }
使用对象名称,检索匹配项
js
let gettingItem = browser.storage.local.get("kitten");
gettingItem.then(onGot, onError);
// -> Object { kitten: Object }
使用对象名称数组,检索所有匹配项
js
let gettingItem = browser.storage.local.get([
"kitten",
"monster",
"grapefruit",
]);
gettingItem.then(onGot, onError);
// -> Object { kitten: Object, monster: Object }
使用以对象名称作为键、默认值作为值的对象
js
let gettingItem = browser.storage.local.get({
kitten: "no kitten",
monster: "no monster",
grapefruit: {
name: "Grape Fruit",
eats: "Water",
},
});
// -> Object { kitten: Object, monster: Object, grapefruit: Object }
Chrome 示例
js
chrome.storage.local.get("kitten", (items) => {
console.log(items.kitten); // -> {name:"Mog", eats:"mice"}
});
或使用 Promise
js
let gettingItem = new Promise((resolve) =>
chrome.storage.local.get("kitten", resolve),
);
gettingItem.then(onGot); // -> Object { kitten: Object }
浏览器兼容性
加载中…
注意:此 API 基于 Chromium 的 chrome.storage API。本文档源自 Chromium 代码中的 storage.json。