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
。
我該如何正確地做到這一點?