@FreeArcher
Senior 1С; php, JS Starter

Как реализовать чтение закладок после загрузки настроек из storege?

Приветствую!
Пишу расширение, которое выводит закладки в chrome на подобии opera.
Реализовал указание ID корневой папки закладок, от которой нужно читать. Настройки сохраняю в chrome.storage.sync. И потом их от туда читаю.

Столкнулся с проблемой.

Так как чтение настроек из storage асинхронное мне нужно начинать выводить закладки после завершения чтения настроек. Но как только я помещаю код вывода закладок в функцию callback функции чтения настроек получаю ошибку.

const getSettingsFromStorage= () => {
    chrome.storage.sync.get(["SETTINGS"], (result) => {
        const keys = Object.keys(result.SETTINGS)
        for (key of keys) {
            if (key != 'SETTINGS') {
                SETTINGS[key] = result.SETTINGS[key]
            }
        }
        loadedSettings = true
        getBookmarks()//эта функция выводит закладки
    })
}

Error handling response: TypeError: Error in invocation of bookmarks.getSubTree(string id, function callback): No matching signature.
    at getBookmarks (chrome-extension://einifcmggplbnlegodnhbibgbhcdjdeg/script.js:148:26)
    at chrome.storage.sync.get (chrome-extension://einifcmggplbnlegodnhbibgbhcdjdeg/settings.js:27:9)


А так работает конечно
getSettingsFromStorage()
getBookmarks()//вывод закладок на страницу

Но я вывожу закладки до чтения настроект получается.
Пробовал и промисы описать, всеравно ошибка.

И даже если просто вызов функции getBookmarks() вставить в setTimeout() такая же ошибка.

Скрипт где читаются настройки
https://github.com/Bespalov-AV/bookmarks-in-tab-li...
Скрипт где выводятся закладки
https://github.com/Bespalov-AV/bookmarks-in-tab-li...

Видимо я не понимаю чего-то.
Подскажите пожалуйста почему так происходит и как мне обойти этот момент.
Спасибо.
  • Вопрос задан
  • 57 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы