redux-observable:史诗的返回间隔

redux-observable: Returning interval from an Epic

我正在尝试将以下@ngrx 效果转换为 redux-observable 史诗:

  @Effect()
  startReading$ =
    this.actions$.ofType('START_READING').switchMap(() => {
      return Observable.interval(200)
        .takeUntil(
          this.actions$.ofType('ABORT_PAGE_PROCESSING))
        .mapTo({ type: 'PROCESS_PAGE' });
    });

我的尝试是:

export const startReadingEpic = action$ =>
  action$
    .ofType('START_READING')
    .switchMap(() =>
      Observable.interval(200)
        .takeUntil(action$.ofType('ABORT_PAGE_PROCESSING'))
        .mapTo({ type: 'PROCESS_PAGE' })
    );

这似乎不起作用。返回单个 Observable.of({ type: 'PROCESS_PAGE' }) 可以正常工作。

我是否遗漏了由@ngrx 处理的 redux-observable 框 out-of-the 要求的任何内容?

谢谢。

代码看起来不错。它只是普通的 Rx,与 redux-observable 或 ngrx 无关(ofType 运算符除外,但在两个库中都是相同的)

在这里,工作中:

https://jsbin.com/nosabuy/edit?js,output

一定是您应用的其他地方有问题。检查您的控制台是否有错误,但如果您没有看到任何错误,您可以尝试在 Chrome 中使用 "Pause on Caught Exceptions" 来查看是否有人正在默默地吞下错误。有一个突出的 RxJS 错误,其中 Rx 本身可能会吞下错误,并且在 redux-observable 的情况下,如果你的 reducers 出现错误,它可能会影响你:https://github.com/redux-observable/redux-observable/issues/263。也就是说,我提醒您不要立即假设您被这个错误咬伤了。你的调试器是你最好的朋友,可以确认发生了什么。


这部分只是为了绕过 Whosebug 的验证,它不会让我在没有代码的情况下提交 jsbin link

// ignore this