StorageArea.set()
在存储区域存储一个或多个项目,或更新已存储的项目。
当您使用此 API 存储或更新值时,会触发 storage.onChanged 事件。
请注意,当您在 sync 存储区域存储项目时,浏览器会强制执行每个扩展程序可以存储的数据量的配额。请参阅 同步数据的存储配额。
这是一个异步函数,返回一个 Promise。
语法
js
let settingItem = browser.storage.<storageType>.set(
  keys             // object
)
其中 <storageType> 是可写存储类型之一 — storage.local、storage.session 或 storage.sync。
参数
- keys
- 
一个包含要存储的一个或多个键/值对的对象。如果项目中已存在该键,则其值将被更新。 值可以是原始类型(例如数字、布尔值或字符串)、 Array或Object类型。通常无法存储其他类型,例如 Function、Date、RegExp、Set、Map、ArrayBuffer等。某些不支持的类型会恢复为空对象,而其他类型则会导致set()抛出错误。这种行为是浏览器特定的。
注意: 如果您想从存储中删除键,请使用 storage.storageArea.remove。如果您想用空值覆盖值,请使用 null,即 key: null。
返回值
如果操作成功,则一个 Promise 将以无参数的形式完成。如果操作失败,则 Promise 会带有错误消息被拒绝。
示例
js
function setItem() {
  console.log("OK");
}
function gotKitten(item) {
  console.log(`${item.kitten.name} has ${item.kitten.eyeCount} eyes`);
}
function gotMonster(item) {
  console.log(`${item.monster.name} has ${item.monster.eyeCount} eyes`);
}
function onError(error) {
  console.log(error);
}
// define 2 objects
let monster = {
  name: "Kraken",
  tentacles: true,
  eyeCount: 10,
};
let kitten = {
  name: "Moggy",
  tentacles: false,
  eyeCount: 2,
};
// store the objects
browser.storage.local.set({ kitten, monster }).then(setItem, onError);
browser.storage.local.get("kitten").then(gotKitten, onError);
browser.storage.local.get("monster").then(gotMonster, onError);
浏览器兼容性
加载中…
注意:此 API 基于 Chromium 的 chrome.storage API。本文档源自 Chromium 代码中的 storage.json。