我有这个用例,我需要在redux saga内进行两个api调用。 我需要第一个api的回复,并在第二个api调用中使用它。最后,我需要获取第二个api调用的响应并填充我的reducers数据。 这是在发生一个api调用并将响应发送给我的reducers时的方式。我担心在两个api调用的情况下应该如何处理,因为我的第二个api调用取决于第一个api调用的数据。 我很担心如何在尝试捕获中将事情捆绑起来。
export function* fetchSportsFanDetailsHandler() {
try {
const { authToken, sportsFanId } = yield select(state => ({
authToken: state.auth.authToken,
sportsFanId: state.auth.userId
}));
const sportsFanDetails = yield call(
fetchSportsFanDetails,
sportsFanId,
authToken
);
const { name, id, mobile, photo, communicationEmail } = sportsFanDetails;
yield put({
type: FETCH_SPORTS_FAN_DETAILS_SUCCESS,
response: sportsFanDetails
});
} catch (err) {
const { error } = err.response.data;
yield put({
type: FETCH_SPORTS_FAN_DETAILS_ERROR,
error: error.message
});
}
}
答案 0 :(得分:0)
我将其分为两个函数,第一个函数是第一个调用,它带有自己的try / catch和自己的错误操作,并返回请求数据。
然后,我将检查数据,如果不为空,则使用自己的try / catch和错误处理再次调用第二个请求。