rxjs 的相关学习与使用(记录)

85 阅读1分钟

在redux中使用 redux-observable, 可以用来处理异步数据的处理, 进而避免使用其他三方中间件的库

t.zoukankan.com/BestMePeng-…

/**
 * epics
 */
const dpUpdateEpic$ = (action$: ActionsObservable<Actions['updateDp']>) => {
  return action$.ofType(updateDp.toString()).mergeMap(action => {
    const { payload } = action;
    const [success, error] = Observable.fromPromise(putDeviceData(payload))
      .catch(() => Observable.of(responseUpdateDp({})))
      .partition((x: { success: boolean }) => x.success);

    return Observable.merge(
      success.map(() => responseUpdateDp(payload)), // 如果每次操作都必须等到上报以后再更新,可以注释掉本段代码
      error.map(() => responseUpdateDp({}))
    );
  });
};

官网: rxjs-dev.firebaseapp.com/guide/opera…

弹珠图:

  1. rxmarbles.com/#mergeMap
  2. rxviz.com/ 操作符: www.wenjiangs.com/doc/rxjs-op…

redux-actions

相关使用介绍:

juejin.cn/post/684490…