невозможно получить данные из browser.storage.local.get - PullRequest
0 голосов
/ 05 апреля 2019

пытается реализовать страницу настроек для аддона / расширения Firefox версии 64.0. Я использую browser.storage.local.se t для хранения данных. но когда я использую browser.storage.local.get для извлечения данных, в журнале консоли получается <unavailable>.

ниже приводится функция, которую я запускаю в моем файле options.js (я ввел njnj в поле формы gateway и нажал кнопку отправки)

function saveOptions(e) {
  e.preventDefault();
  console.log("you are here")
  console.log(document.querySelector("#gateway").value)
  browser.storage.local.set({
  "gateway": document.querySelector("#gateway").value  });
  console.log(browser.storage.local.get("gateway"))
}

document.querySelector("form").addEventListener("submit", saveOptions);

мой фактический вывод в журнале консоли выглядит следующим образом:

you are here                                         options.js:4:3
njnj                                                options.js:5:3
<unavailable>                                       options.js:8:3

1 Ответ

0 голосов
/ 07 апреля 2019

хорошо, так что я частично понял, почему вышеприведенный код не работает. проблема заключается в том, что browser.storage.local.get () возвращает «обещание» в javascript (на самом деле я пока не знаю, что это значит). Таким образом, у вас должен быть код, который фактически извлечет ответ / сохраненное значение из этого «обещания». Я дам вам пример того, как получить значение:

// first save a key value pair into storage
browser.storage.local.set({"key": 'value'})

// to retrieve this value, first declare a new variable
var savedvalue = "zero"

// retrieve the 'promise' of key value pair, then run the associated function to get
//the savedvalue and set it equal to previously declared variable. 
browser.storage.local.get(['key'], function(result) {savedvalue = result.key});

// now, when you call savedvalue (even outside the function above), it will return 'value'
console.log(savedvalue)

output>> value
...