Spec-Zone.ru › Web Extensions

StorageArea.get()

Извлекает один или несколько элементов из области хранения.

Это асинхронная функция, которая возвращает Promise.

Синтаксис

let results = browser.storage.<storageType>.get(
  keys    // null, string, object or array of strings
)

<storageType> будет одним из типов хранилища для записи — sync, local или managed.

Параметры

keys

Ключ (string) или ключи (массив строк или объект, определяющий значения по умолчанию) для идентификации элемента(ов) для извлечения из хранилища. Если вы передадите пустой объект или массив, будет извлечён пустой объект. Если вы передадите null, или неопределённое значение, будут извлечены все содержимое хранилища.

Возвращаемое значение

A Promise , который разрешается в объект results, содержащий каждый объект в keys, который был найден в области хранения. Если keys является объектом, ключи, которых нет в области хранения, будут иметь значения, заданные объектом keys.

Если операция завершилась неудачно, обещание отклоняется с сообщением об ошибке.

Если управляемое хранилище не установлено, будет возвращено undefined.

Предупреждение: При использовании внутри скрипта контента в версиях Firefox до 52 обещание, возвращаемое browser.storage.local.get(), выполняется с массивом, содержащим один объект. Объект в массиве содержит keys , найденный в области хранения, как описано выше.

Обещание правильно выполняется с объектом при использовании в контексте фонового процесса (фоновые скрипты, всплывающие окна, страницы настроек и т. д.).

Когда этот API используется как chrome.storage.local.get(), он правильно передаёт объект в функцию обратного вызова.

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet
get Да 14 45 ? 33 14 ? ? 48 ? 15 ?
empty_key Да 14 45 ? 33 Нет ? ? 48 ? Нет ?

Примеры

Предположим, хранилище содержит два элемента:

// storage contains two items,
// "kitten" and "monster"
browser.storage.local.set({
  kitten:  {name:"Mog", eats:"mice"},
  monster: {name:"Kraken", eats:"people"}
});

Определите обработчики успешного и неудачного выполнения обещания:

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 }

С пустым аргументом keys, ничего не верните:

// with an empty array, retrieve nothing
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 }

С объектом, где имена объектов – ключи, а значение по умолчанию – значение:

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", (items) => {
  console.log(items.kitten);  // -> {name:"Mog", eats:"mice"}
});

Или с функцией стрелкой

chrome.storage.local.get("kitten", (items) => {
  console.log(items.kitten); // -> {name:"Mog", eats:"mice"}
});

Или с использованием Promise

let gettingItem = new Promise((resolve) => chrome.storage.local.get("kitten", resolve));
gettingItem.then(onGot); // -> Object { kitten: Object }

Примечание: Этот API основан на API хранилища chrome.storage Chromium. Данная документация взята из storage.json в коде Chromium.

© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage/StorageArea/get

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API