У меня есть функция, которая получает данные из chrome.storage и загружает ее в массив, все работает нормально, если я сохраняю пустой массив в chrome.storage, используя строку кода затем вынимая его, прежде чем использовать расширение в качестве пользователя.Проверка наличия данных в chrome.storage.sync
Проблема заключается в том, что пользователь не может сделать это, если я начну расширение в первый раз, не делая это, то он выглядит как хром проходит обратно неопределенный в переменную, которая вызывает эту ошибку:
"Uncaught TypeError: Cannot read property '8' of undefined"
на этой линии:
if (SavedReminders[i][8] == "Full") {
Я не совсем уверен, что именно происходит, но я думаю, что если есть способ, чтобы проверить, существуют ли данные уже в chrome.storage или способ сохранения пустой массива только в первый раз, когда пользователь открывает расширение, которое будет х это.
Вот моя функция нагрузки:
function LoadFromFile() {
reminds = {}
chrome.storage.sync.get({ reminds: [] }, function (result) { SavedReminders = result.reminds });
}
и функция сохранения:
function SaveToFile() {
reminds={}
chrome.storage.sync.set({reminds:SavedReminders },
function() {
console.log(SavedReminders, reminds);
});
}
любая помощь будет оценена, спасибо.
«Вы можете передать объект в api со значениями по умолчанию для каждого ключа». ,...... как? – sports
Ive обновил ответ –
«вернется obj» - где ваш объект? Вы уверены, что это работает? Пробовал в Firefox 48 'all = chrome.storage.StorageArea.get ({foo:" hi ", bar:" there "});' freezed my Debugger – user1141649