StorageArea.get()
ストレージ領域から 1 つ以上のアイテムを取得します。
この関数は Promise
を返す非同期関数です。
構文
let gettingItem = browser.storage.<storageType>.get( keys // null, string, object or array of strings )
<storageType>
は storage.sync
または storage.local
の書き込み可能なストレージタイプです。
引数
keys
-
取得したいアイテムのキー(文字列・文字列の配列またはデフォルト値を指定するオブジェクト)を指定します。空文字列・オブジェクト・配列を指定すると空のオブジェクトが取得できます。
null
か未定義の値を指定するとストレージ全体のアイテムが取得できます。
返り値
成功時は keys
で指定されたストレージ領域内のアイテム全てを含む results
オブジェクトを引数に持つ Promise
を返します。 失敗した場合 promise はエラーメッセージと共にリジェクトされます。
警告:
52 より前の Firefox バージョンのコンテンツスクリプトで使用する場合、 browser.storage.local.get()
で返される Promise は 1 つのオブジェクトを持つ配列を引数に持ちます。配列内のオブジェクトは上記に記述したようにストレージ領域内の keys
を持っています。 The Promise is correctly fulfilled with an Object when used in the background context (background scripts, popups, options pages, etc.). When this API is used as chrome.storage.local.get()
, it correctly passes an Object to the callback function.
ブラウザーの互換性
BCD tables only load in the browser
例
あらかじめストレージ領域に 2 つのアイテムを格納しておきます。
// "kitten" と "monster" を格納
browser.storage.local.set({
kitten: { name: "Mog", eats: "mice" },
monster: { name: "Kraken", eats: "people" },
});
次に promise で使う成功時と失敗時のハンドラーを定義しておきます。
function onGot(item) {
console.log(item);
}
function onError(error) {
console.log(`Error: ${error}`);
}
keys
を指定せずに呼び出すと全て取得します。
let gettingItem = browser.storage.local.get();
gettingItem.then(onGot, onError);
// -> Object { kitten: Object, monster: Object }
空のキーを指定すると何も返しません。
// 空の配列を指定すると何も返らない
let gettingItem = browser.storage.local.get([]);
gettingItem.then(onGot, onError);
// -> Object { }
オブジェクト名を指定すると、合致するものを返します。
let gettingItem = browser.storage.local.get("kitten");
gettingItem.then(onGot, onError);
// -> Object { kitten: Object }
オブジェクト名の配列を指定すると合致するものを全て返します。
let gettingItem = browser.storage.local.get([
"kitten",
"monster",
"grapefruit",
]);
gettingItem.then(onGot, onError);
// -> Object { kitten: Object, monster: Object }
オブジェクト名をキー、デフォルト値を value に指定したオブジェクトを指定する場合
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 での例
chrome.storage.local.get("kitten", function (items) {
console.log(items.kitten); // -> {name:"Mog", eats:"mice"}
});
Or with an arrow function
chrome.storage.local.get("kitten", (items) => {
console.log(items.kitten); // -> {name:"Mog", eats:"mice"}
});
メモ:
この API は Chromium の chrome.storage
API に基づいています。また、このドキュメントは storage.json
における Chromium のコードに基づいています。Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。