Итак, у меня есть эта функция, которая должна возвращать сохраненное значение установленного ключа с помощью chrome API хранилища:
function loadBtn(id) {
return new Promise(resolve => {
chrome.storage.sync.get([id], function(result) {
resolve(result.id);
});
});
}
По сути, я просматриваю все элементы с одинаковыми класс, и сохраняя их значение цвета фона, и ключ устанавливается в качестве их идентификатора. Вот что я имею в виду (favBtnBG
это просто значение RGB):
$('.colorBtn').click(function() {
let favBtnBG = await loadRbgVal();
var id = $(this).attr('id');
chrome.storage.sync.set({ [id]: favBtnBG });
})
Проблема в том, что когда я пытаюсь вызвать функцию loadBtn
, она возвращает неопределенное значение. Вот как я это называю (консоль выходит из системы неопределенно)
$('.colorBtn').someListener(function() {
highlightedRgbVal = await loadBtn($(this).attr('id'));
console.log(highlightedRgbVal)
})
Как я вижу, могут быть две возможные ошибки. Во-первых, я неправильно устанавливаю значение в хранилище. Я думаю, что при использовании скобок при установке ключа в качестве ключа используется значение переменной id
, а не строка id
, но, пожалуйста, исправьте меня, если я ошибаюсь.
Вторая возможная ошибка - что-то не так с моей функцией loadBtn
. Функция работала до того, как я начал передавать id
в нее, поэтому я не думаю, что я передаю ее правильно.
С учетом сказанного, как правильно передать параметр в функцию storage.sync.get()
?