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。