检测史诗中两个动作的顺序

detecting sequence of two actions in Epic

我要抓紧时间: 当 FIRST_ACTION 派遣,然后 SECOND_ACTION 派遣

目前我的代码看起来像这样。它运行良好,符合我的预期。

action$.ofType(FIRST_ACTION).pipe(
  mergeMap(() =>
    action$.ofType(SECOND_ACTION).pipe(
      take(1),
      mergeMap(() => /* do something*/),
    )
  )
)

有没有更好的方法来检测这样的时间?

您可以尝试使用 zip

zip(action$.ofType(FIRST_ACTION), action$.ofType(SECOND_ACTION)).pipe(
  mergeMap(([firstAction, secondAction]) => 
    // return observable  
  )
)

你确定你的第一个动作总会有相应的第二个动作吗?请注意,zip 在生成值之前等待来自每个可观察源的值。