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