我有以下问题:
在服务内部我在forEach循环中触发相同的ngrx Action
sensorCategories.forEach(category => {
if (category === 'power' || category === 'air-flow') {
this.store.dispatch(new fromEnergyManagementActions.FetchBigWidgetDataAction({ category: category }));
} else {
this.store.dispatch(new fromEnergyManagementActions.FetchSmallWidgetDataAction({ category: category }));
}
});
然后会触发下一个副作用:
@Effect()
fetchSmallWidgetData: Observable<Action> = this.actions
.ofType(fromEnergyManagementActions.FETCH_SMALL_WIDGET_DATA)
.map(toPayload)
.switchMap(payload => this.dashboardDataService.fetchSmallWidgetData(payload))
.map((data: SmallWidgetData) => new fromEnergyManagementActions.FetchSmallWidgetDataSuccessAction(data))
.catch(error => of(new fromEnergyManagementActions.FetchSmallWidgetDataFailureAction()));
来自服务的方法fetchSmallWidgetData将使用'new'HttpClient执行rest调用。
以下是日志: init(charactersIn:)
所以问题是,ngrx / effect中止了之前的调用。我在中间超时测试了它。当超时足够长时,一切都成功。
你的建议是什么?是否有最佳实践,我可以使用? 谢谢你的帮助