首页 > 解决方案 > 在 Redux Observable 中完成所有操作后调度一个操作

问题描述

您能否给我一个建议,如何等待多个 Redux 分派然后执行一些操作?常见的场景是应用程序的初始化(例如,等待 FETCH_SOMETHING_SUCCESS 和 FETCH_ELSE_SUCCESS 然后调度 APP_INIT_SUCCESS)。

就像是...

  export const appInitSuccessEpic = (action$) =>
  action$.pipe(
    whenAllDispatched('FETCH_ONE', 'FETCH_SECOND'),
    map(() => { type: 'APP_INIT_SUCCESS' })
  )

谢谢 :)

标签: rxjsredux-observable

解决方案


您可以使用zip运算符。

在所有可观察对象发出后,将值作为数组发出

import { ofType } from 'redux-observable';

export const appInitSuccessEpic = (action$) => 
 zip(
    action$.pipe(ofType("FETCH_THIS_SUCCESS")),
    action$.pipe(ofType("FETCH_ELSE_SUCCESS"))
  )
 .pipe(mapTo({ type: 'APP_INIT_SUCCESS' }))

推荐阅读