Я новичок в react-redux
. Здесь я пытаюсь использовать aysnc-await
. То, что у меня есть, на componentDidMount я называю API, в котором, если там я получил 200 Ok
тогда и только тогда я хочу вызвать второй API. поэтому я использую async-await
для этого.
export function fetchUserResumes(pageNo, jdId) {
pageNo = 0;
let size = 20;
return (dispatch) => {
const page = `page=${pageNo}`;
let url = FETCH_RESUMES + '/' + jdId + '?' + page + '&' + size;
dispatch({
type: REQUEST_INITIATED
})
return get(url)
.then((response) => {
if (response.status === 200) {
dispatch({
type: FETCHING_RESUME_SUCCESS,
data: response.payload
})
dispatch({
type: REQUEST_SUCCESSED
})
} else {
if (!response.status) {
toastr.error('Our server is down. Please check again');
}
else if (response.status.status === 401) {
dispatch(logout());
}
else if (response.status.status === 500) {
toastr.error("Error while fetching Job description,Please try again");
dispatch({
type: FETCHING_RESUME_FAILED,
data: response.status,
});
dispatch({
type: REQUEST_SUCCESSED
})
} else {
dispatch({
type: REQUEST_SUCCESSED
})
}
}
return true;
})
}
};
Действие, которое вызывается по didmout:
export function getUserJobInfo(jobId) {
return async (dispatch) => {
dispatch({
type: REQUEST_INITIATED
});
let url = GET_JOB_INFO_URL + jobId;
let response = await get(url);
if (response.status === 200) {
let pageNo = 0;
let size = 20;
const page = `page=${pageNo}`;
let url = FETCH_RESUMES + '/' + jobId + '?' + page + '&' + size;
let newApiResponse = await get(dispatch(fetchUserResumes(pageNo, jobId)));
dispatch({
type: USER_JOB_INFO,
data: response.payload
})
}
else {
}
}
}
Это способ, которым я пытался это сделать. Но здесь я очень запутался, когда использую async await. Поэтому любой может помочь мне решить эту проблему.
Спасибо.