我想对同一个 api 调用数据进行两种处理。
我有第一个效果:
loadSchedulings$ = createEffect(() =>
this.actions$.pipe(
ofType(ESchedulesActions.GetSchedulesByDate),
mergeMap(() =>
this.apiCallsService.getSchedulings().pipe(
map(trips => ({ type: ESchedulesActions.GetSchedulesByDateSuccess, payload: trips })),
catchError(() => EMPTY)
)
)
)
);
我调用getSchedulings服务方法进行 api 调用,然后对数据进行处理 1
ApiCallsService :
getSchedulings() {
return this.http.get<ISchedules>(this.SchedulingByDateLocal2).pipe(
...
return groupByDate;
})
);
}
我想对同一数据源进行第二次处理。(原始数据来自 api )但与第一个并行,因为它们是独立的
所以按照逻辑,我创造了第二个效果
loadDirections$ = createEffect(() =>
this.actions$.pipe(
ofType(ESchedulesActions.GetSchedulesByDate),
mergeMap(() =>
this.apiCallsService.getDirections().pipe(
map(trips => ({ type: ESchedulesActions.GetDirectionsByDateSuccess, payload: directions})),
catchError(() => EMPTY)
)
)
)
);
然后在 apiCallService 我应该有一个方法
getDirections() {
return this.http.get<ISchedules>(this.SchedulingByDateLocal2).pipe(
...
return groupByDirections;
})
);
}
这里的问题是我将有两个对相同数据的请求。
总结实际工作流程:
LoadSchedulings(效果)==> loadSchedulings(服务)==> API 调用==> 处理1 LoadDirections(效果)==> loadDirections(服务)==>(相同)API 调用==> 处理2
所以我想只使用第一个 api 请求的数据进行两次处理
杨__羊羊
慕无忌1623718
相关分类