Rxjs 在“效果”中将多个动作合并为单个动作
我有下面的操作列表,我想合并它们,以便返回一个操作列表并逐个执行它们 我试过了Rxjs 在“效果”中将多个动作合并为单个动作,rxjs,observable,ngrx,Rxjs,Observable,Ngrx,我有下面的操作列表,我想合并它们,以便返回一个操作列表并逐个执行它们 我试过了 map(drones => { const actions = []; drones.forEach((drone) => actions.push(new featureActions.OpenUsedDroneUpdateChannelRequest({ droneId: drone.id, projectId : environment.projectId })));
map(drones => {
const actions = [];
drones.forEach((drone) => actions.push(new featureActions.OpenUsedDroneUpdateChannelRequest({ droneId: drone.id, projectId : environment.projectId })));
actions.push(new featureActions.GetUsedDronesSuccess({drones}));
return forkJoin(actions);
}),
我也试过了
map(drones => {
const actions = [];
drones.forEach((drone) => actions.push(new featureActions.OpenUsedDroneUpdateChannelRequest({ droneId: drone.id, projectId : environment.projectId })));
actions.push(new featureActions.GetUsedDronesSuccess({drones}));
return merge(actions);
}),
布斯不工作了
错误:效果“UsedDronesEffect.getUsedDrones$”已调度
无效操作:{“\u isScalar”:false}
如何合并它们 您可以尝试以下示例,或者尝试使用
mergeMap()
组合新操作
@Effect()drones=this.dronesEffect.pipe(
...,
switchMap((res:drone[])=>drone.map(x=>newfeatureactions.OpenUsedDroneUpdateChannelRequest({droneId:drone.id,projectd:environment.projectd})))
)
);
查看此您应该能够返回一个操作数组,其中包含下列运算符之一
mergeMap
、switchMap和concatMap`。它还必须返回一个动作数组,为什么不一个一个地分派动作?可能重复的动作
core.js:15724 ERROR TypeError: Actions must have a type property
at