有条件地返回 NgRx 效果中的动作

PNDev

我正在尝试检查效果中的条件并根据条件结果分派不同的操作。条件参数是从 Store 和 API 调用获得的,如下所示。

@Effect()
// error here - Observable<void> is not assignable to type Observable<Action>
  loadUserSkills$: Observable<Action> = this.actions$
    .ofType(UserActionTypes.REQUEST_USER_SKILLS)
    .withLatestFrom(this.store$)
    .map(([action, storeState]) => {
      this.skillsService.getUserSkillsCacheVersion().
        map((cacheVersion) => {
          if (cacheVersion === storeState.users.cacheVersion.userSkills) {
            return new UsersActions.RequestUserSkillsFromStore();
          } else {
            return new UsersActions.RequestUserSkillsFromServer();
          }
        });
      });

这里有什么不正确的?

PNDev

我通过稍微修改效果来修复它,然后 ForkJoined observable 如下所示。

  @Effect()
  loadUserSkills$: Observable<Action> = this.actions$
    .ofType(UserActionTypes.REQUEST_USER_SKILLS)
    .withLatestFrom(this.store$)
    .map(([, storeState]) => storeState.users.cacheVersion.userSkills)
    .switchMap((currentCacheVersion) =>
      forkJoin([of(currentCacheVersion), this.skillsService.getUserSkillsCacheVersion()]))
    .map((data: any) => {
      const [currentCacheVersion, latestCacheVersion] = data;
      if (latestCacheVersion !== 0 && currentCacheVersion === latestCacheVersion) {
        return new UsersActions.RequestUserSkillsFromStore();
      } else {
        return new UsersActions.RequestUserSkillsFromServer();
      }
    });

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何有条件地从ngrx中的效果分派多个动作

来自分类Dev

有条件地执行after_success动作?

来自分类Dev

显示动作在MVC中有条件地链接

来自分类Dev

使用Dart有条件地返回Map()中的元素

来自分类Dev

在rxjs / ngrx效果中链接动作的正确方法是什么

来自分类Dev

如何从NgRx中的单个效果分派多个动作?

来自分类Dev

Ngrx 效果:输出未添加到动作流中

来自分类Dev

有条件地在XML ArrayList中包含bean

来自分类Dev

有条件地关闭Thymeleaf中的标签

来自分类Dev

有条件地选择熊猫DataFrame中的数据

来自分类Dev

如何有条件地调用sbt中的任务?

来自分类Dev

有条件地调用R中的特定列

来自分类Dev

有条件地从数据框中删除

来自分类Dev

SSRS有条件地从表中删除行

来自分类Dev

有条件地删除R中的行

来自分类Dev

有条件地删除向量中的元素

来自分类Dev

有条件地在Django中扩展模板

来自分类Dev

有条件地在Redshift中删除临时表

来自分类Dev

如何有条件地忽略GDB中的SIGTRAP?

来自分类Dev

有条件地在R中创建列

来自分类Dev

有条件地在熊猫中读取csv

来自分类Dev

有条件地枚举python中的项目

来自分类Dev

如何有条件地在Ruby中重复循环?

来自分类Dev

有条件地对元组列表中的值求和

来自分类Dev

有条件地在宏中调用键控参数

来自分类Dev

有条件地包含在EF Core中

来自分类Dev

如何有条件地在熊猫中删除行

来自分类Dev

有条件地插入表中

来自分类Dev

有条件地隐藏WooCommerce中的运输方式