NGRX效果-映射操作以进行顺序服务调用和更新存储

时间:2018-10-11 11:26:17

标签: angular ngrx ngrx-effects

我想连续2次将相同的动作传递给不同的实体,例如,我想添加2个实体,

entity 1;
entity 2;
this.store.dispatch(new Add(entity1));
this.store.dispatch(new Add(entity2));

我遇到的问题是我只有一个动作(实体2一个)的结果 这就是我行动的结果。我想等待第一个动作的结果再通过第二个动作。

@effect()
add$ = this.actions$
.ofType<Add>(ADD)
.pipe(switchMap(a =>
this.sharedService.add(a.entity, a.api)
.pipe(map(s => new AddResult(Ok(s.id))))
.pipe(catchError(e => of(new AddResult(Err(e)))))));

1 个答案:

答案 0 :(得分:1)

您可能要使用 mergeMap 而不是 switchMap 。这是地图及其行为的列表:enter image description here

// src/main/groovy/demo/MyBaseClass.groovy
package demo

import grails.gorm.dirty.checking.DirtyCheck

@DirtyCheck
abstract class MyBaseClass {
    String name
}