Приветствую!
Пишу расширение, которое выводит закладки в 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...
Видимо я не понимаю чего-то.
Подскажите пожалуйста почему так происходит и как мне обойти этот момент.
Спасибо.