0
我有两个异步请求,想写史诗做的工作就像promise.all()
redux-observable,如何做一个像promise.all()这样的操作符?
const fetchData1 =() => (action$: ActionsObservable<any>, store: any) => (
ajax.getJSON('../../mockData/promiseAll/data1.json').map((data: any) => {
return requestData1Success(data);
})
);
const fetchData2 =() => (action$: ActionsObservable<any>, store: any) => (
ajax.getJSON('../../mockData/promiseAll/data2.json').map((data: any) => {
return requestData2Success(data);
})
)
const requestAllDataEpic = (action$: ActionsObservable<any>, store: any) => {
return action$.ofType(t.REQUEST_ALL_DATA)
.map((action) => action.payload)
.switchMap((names: string[]) => {
console.log(names);
return Observable.forkJoin([
fetchData1()(action$, store),
fetchData2()(action$, store)
])
.map((results: any[]) => {
const [action1, action2] = results;
requestData1Success(action1);
requestData2Success(action2);
});
});
};
但是,当我派遣行动,控制台给我一个错误:
Uncaught TypeError: Cannot read property 'type' of undefined
我想原因是我不给中间件一个action
对象,而是undefined
。
我该如何正确地做到这一点?