Задать вопрос

Reflux: для чего нужны методы action.completed и action.failed?

Разбираюсь с Flux-архитектурой на примере RefluxJS.
В мане по библиотеке описаны два метода для асинхронных действий:
someAction.completed
someAction.failed

Если я верно понимаю, то они вызываются (или должны вызываться) в случае успеха и неудачи асинхронной задачи.
На них нужно навешивать методы стореджа для обработки результатов или они нужны для перехвата логирования неудач?
Обработку результата и неудачи можно сделать прямо в сторедже:
var asyncAction = Reflux.createAction({});

var someStore = Reflux.createStore({
  data: [],
  init: function () {
    this.listenTo(asyncAction, this.onAsyncAction);
  },
  onAsyncAction: function () {
    myAsyncWorker()
      .success(this.storeNewData)
      .error(this.asyncErrorHandler)
      .complete(function () {
        this.trigger({
          data: this.data
        });
      });
  },
  storeNewData: function (data) {
    //todo something with data and store it
  },
  asyncErrorHandler: function (error) {
    //todo something with error
  }
});

И это без дополнительных методом действия (completed, failed).
Какая задумка и тонкость создания и использования дополнительных методом действия (completed, failed)?
  • Вопрос задан
  • 3088 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
Laiff
@Laiff
Front-end developer
Основная задумка отделить логику получения от логики обработки, то есть слушать события успеха и неудачи можно и в других сторах, например стор для загрузчика, который будет управлять отображением индикатора загрузки, и другой для например формирования уведомлений пользователя о произошедшем. Это три независимых места, которые реагируют на одинаковые события.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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