Разбираюсь с 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)?