Я изучаю RxJS / Redux-Observable в React.
Но у меня вопрос по поводу return Promise
.
Без использования RxJS / Redux-Observable
, чтобы я мог вернуть обещание компоненту, чтобы он мог использовать .then()
для следующего действия
В действии реакции
export const getData = () => (dispatch) => {
try {
const dataResponse = await dataAPI.getData();
dispatch(getDataAction(dataResponse));
return Promise.resolve(dataResponse);
} catch (error) {
return Promise.reject(error);
}
}
В компоненте реакции
componentDidMount = () => {
const {
getData
} = this.props;
getData().then(function(response) {
// I can use this response action for some UX Action.
})
}
С использованием RxJS / Redux-Observable
Я не знаю, как вернуть обещание
В эпическом действии реакции
export const getDataEpic = (action$, state$) => {
return action$.pipe(
ofType(FETCH_DATA),
mergeMap(action => {
let _response = ajax.getJSON(dataAPI.getData());
return _response.pipe(
delay(3000),
map(response => {
return fetchDataFulfilledAction(response);
}),
takeUntil(action$.pipe(
filter(
action => action.type === CANCEL_FETCH_DATA
)
))
)
})
);
}
В компоненте реакции
componentDidMount = () => {
const {
getData
} = this.props;
getData().then(function(response) {
// How to get this response result ?
})
}
Я знаю, что использовать Reducer - один из способов справиться, но я все еще хочу знать, как вернуть обещание.
Спасибо, ребята