chrome.storage.sync.get не работает должным образом с парами ключ-значение - PullRequest
1 голос
/ 31 мая 2019

Согласно документации на Chrome Storage:

https://developer.chrome.com/extensions/storage

Это правильный способ установки и получения пар ключ-значение в синхронизированном хранилище:

   chrome.storage.sync.set({key: value}, function() {
     console.log('Value is set to ' + value);
   });

   chrome.storage.sync.get(['key'], function(result) {
     console.log('Value currently is ' + result.key);
   });

Я повторил этот синтаксис для своего кода, но result.key всегда заканчивается как неопределенное, а не возвращает значение для ключа, который я указываю.

Я собираю данныедля пары ключ-значение из контекстного меню, и это работает правильно.В журнале операции set отображаются правильные данные, поэтому я предполагаю, что сам набор также работает правильно (но, возможно, это неверное предположение?).

Для операции get я временно вынудил переменную 'data1' просто потому, что это непротиворечивая строка, которую я могу выбрать в контекстном меню, чтобы установить для тестирования.Но когда я пытаюсь получить значение, связанное с этим ключом, я получаю неопределенное значение.

let repUserSelected = item.selectionText;
let bColor = item.menuItemId;
chrome.storage.sync.set({repUserSelected: bColor}, function() {
          console.log(repUserSelected + ' is set to ' + bColor);
        });
//test - data1 should be a variable in the final code
let repUserTest = 'data1';
chrome.storage.sync.get(['repUserTest'], function(result) {
   console.log('Color for ' + repUserTest + ' currently is ' + result.repUserTest);
        });
});

Вот вывод консоли, который я получаю:

data1 is set to #ff786f                 background.js:33
Color for data1 currently is undefined  background.js:38
data2 is set to #a0ffbd                 background.js:33
Color for data1 currently is undefined  background.js:38

Я попытался удалить кавычкииз repUserTest, так как я не хотел, чтобы это оценивалось как фактическая строка в get, но это ничего не изменило.Я не чувствую, что это асинхронная проблема, требующая обратного вызова, потому что проблема сохраняется даже после выполнения последующих наборов.Но должно быть что-то, чего я не понимаю в том, что здесь происходит, поэтому любая помощь будет принята с благодарностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...