我的副作用类似这样:
@Effect()
FetchAllOrders$ = this.actions$
.ofType(SalesOrderActions.FETCH_ALL_ORDERS)
.switchMap((action: Action) => {
return this.soApiService.getUsersSalesOrders(action.payload);
})
.map((salesOrders: ListDto<SalesOrderList>) => this.actions.fetchAllOrdersSuccess(salesOrders));
我希望在效果开始时显示加载符号,并在结束时隐藏它。
我已经创建了一个独立的操作、减少器和存储状态集来处理显示加载符号。
export class BusyActions {
static SHOW_SPINNER = "SHOW_SPINNER";
static HIDE_SPINNER = "HIDE_SPINNER";
showSpinner(): Action {
return { type: BusyActions.SHOW_SPINNER };
}
hideSpinner(): Action {
return { type: BusyActions.HIDE_SPINNER };
}
export const BusyState: IBusyState = {
visible: false,
busy: false
};
我这样做是因为加载状态需要与其他模块、状态等共享。
我该如何从副作用中调用我的BusyActions?我需要在开始时调用SHOW_SPINNER,在结束时调用HIDE_SPINNER。
我这样做正确吗?或者有更好的处理方法吗?