StorageArea.get()
从存储区检索一个或多个项目。
这是一个异步函数,它返回一个 Promise
。
语法
参数
键
-
一个键 (
string
) 或多个键 (字符串数组,或 指定默认值的 对象) 用于标识要从存储区检索的项目。如果在此处传递空对象或数组,则将检索空对象。如果传递null
或未定义值,则将检索整个存储内容。
返回值
一个 Promise
,它解析为一个 results
对象,其中包含在 keys
中找到的存储区中的所有对象。如果 keys
是一个对象,则存储区中未找到的键将使用 keys
对象中的值。
如果操作失败,则 promise 将被拒绝,并显示错误消息。
如果未设置管理存储,则将返回 undefined
。
警告: 当在 52 之前的 Firefox 版本中的内容脚本中使用时,browser.storage.local.get()
返回的 Promise 将使用包含一个对象的数组来履行。数组中的对象包含存储区中找到的 keys
,如上所述。
当在后台上下文(后台脚本、弹出窗口、选项页面等)中使用时,Promise 将使用一个对象来正确履行。
当此 API 用作 chrome.storage.local.get()
时,它会将一个对象正确地传递给回调函数。
浏览器兼容性
BCD 表格仅在浏览器中加载
示例
假设存储包含两个项目
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
。