在redux中使用 redux-observable, 可以用来处理异步数据的处理, 进而避免使用其他三方中间件的库
/**
* 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…
弹珠图:
redux-actions
相关使用介绍: