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 のコードに基づいています。