Согласно документации на 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, но это ничего не изменило.Я не чувствую, что это асинхронная проблема, требующая обратного вызова, потому что проблема сохраняется даже после выполнения последующих наборов.Но должно быть что-то, чего я не понимаю в том, что здесь происходит, поэтому любая помощь будет принята с благодарностью.