Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.04.2020, 19:38
Интересующийся
Отправить личное сообщение для shurikkan Посмотреть профиль Найти все сообщения от shurikkan
 
Регистрация: 03.05.2014
Сообщений: 21

VueJS: долгий VueX action; нужен ли Promise?
Привет всем.

В приложении получаю довольно большие массивы данных.
Перед тем, как записать их в стейт, мне нужно распарсить их и сформировать из них объекты классов.

Сейчас данных примерно втрое меньше, чем предполагается на бою, но уже наблюдаются рывки при скроле и зависания анимаций на странице.

Как я понимаю, можно решить эту проблему поместив самые ресурсозатратные операции в promise? В целом, вся работа у меня идёт во VueX action. Всё остальное, по сути - контроллеры и шаблоны.

Сейчас схема работы такая:
  1. Получено сообщение по websocket
  2. Определяю какая команда пришла
  3. Запускаю vuex action для данной команды
  4. В экшене строка, полученная по websocket парсится, из каждого полученного элемента создаётся объект класса, объекты объединяются в массив и передаются в мутацию
  5. VueX mutation: массив полученный в п.4 помещается в state
  6. Получаю стейт через mapgetter и вывожу элементы массива в шаблон компонента через v-for

То есть, мне нужно обернуть всё, что делается в action в промис и запускать мутацию только после получения resolve? Правильно ли так делать или ошибка уже на стадии проектирования? Хз, может я не до конца понимаю реактивность и, возможно, можно завязываться на свойство/стейт с помощью watch, но пока не очень представляю дорожную карту всего этого =/

Раньше промисами не пользовался, так что прошу извинить мои, возможно, извращенские взгляды

Последний раз редактировалось shurikkan, 20.04.2020 в 19:45.
Ответить с цитированием
  #2 (permalink)  
Старый 21.04.2020, 13:51
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

Сообщение от shurikkan
Как я понимаю, можно решить эту проблему поместив самые ресурсозатратные операции в promise? В целом, вся работа у меня идёт во VueX action. Всё остальное, по сути - контроллеры и шаблоны.
А есть ли в этом смысл?

Promise не выносит "операцию" в другой процесс/поток, так что подвисания не уйдут.
Другое дело Service Worker.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск