StorageArea.set()
1 つ以上のアイテムをストレージ領域に保存または上書きします。
この API を使用して保存や上書きをする場合、storage.onChanged
イベントが発火します。
この関数は Promise
を返す非同期関数です。
構文
js
let settingItem = browser.storage.<storageType>.set(
keys // オブジェクト
)
<storageType>
は storage.sync
または storage.local
の書き込み可能なストレージタイプです。
引数
keys
-
保存したい 1 つ以上のキー/値ペアを持つオブジェクトを指定します。アイテムが既に存在する場合、値は上書きされます。
値は primitive 型 (整数型・ブール型・文字列) または
配列
を指定でできます。通常は他の型 (
Function
,Date
,RegExp
,Set
,Map
,ArrayBuffer
など)は格納できません。これらのサポートされていない型の中には空のオブジェクトとして復元されたり、set()
がエラーをスローする場合があります。この場合の挙動はブラウザーに依存します。
返り値
成功時は引数の無い Promise
を返します。 失敗した場合 promise はエラーメッセージと共にリジェクトされます。
ブラウザーの互換性
BCD tables only load in the browser
例
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);
}
// オブジェクトを2つ定義
var monster = {
name: "Kraken",
tentacles: true,
eyeCount: 10,
};
var kitten = {
name: "Moggy",
tentacles: false,
eyeCount: 2,
};
// オブジェクト2つを格納
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 に基づいています。また、このドキュメントは storage.json
における Chromium のコードに基づいています。