@lacront

Использование async/await c localStorage?

Подскажите пожалуйста, есть ли смысл использовать async/await при получении данных с localStorage и сохранении?
Сделал что-то вроде этого:
let apiLocalStorage = {
  initialState: async function(){
    return await JSON.parse(localStorage.tasks || '[]');
  },
  saveState: async function(tasks){
    localStorage.tasks = JSON.stringify(tasks)
  },
};

apiLocalStorage.initialState().then((tasks) => {
  state.todos = tasks;
});


Одна из мутаций:
const state = {
  todos: [],
};

const mutations = {
  addNew(state, payload) {
    state.todos = [...state.todos, payload];
    apiLocalStorage.saveState(state.todos)
  },
}
  • Вопрос задан
  • 2374 просмотра
Пригласить эксперта
Ответы на вопрос 1
r37r0m0d3l
@r37r0m0d3l
localStorage синхронный и заблокирует выполнение JavaScript
Варианты:
1). Блокируем всю страницу спиннером который работает на CSS анимациях и не вызывает JavaScript. выполняем операции с localStorage.
2). Отказ от localStorage в пользу Web Storage.
3). Передача данных через iframe этого же домена. Пример: https://stackoverflow.com/questions/37917483/get-l.... Скорее всего будет блокироваться плагинами браузера или перестанет работать из-за новых Content Security Policy.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы