В саге я создаю генератор, который я вызываю последовательно. когда второй вызов сделан и первый вызов находится в полете, то первое действие отменяется, и я получаю только данные из второго запроса, вот мой код. Начальное состояние в редукторе
export const initialState = {
sectionData:
{
featuredData: false,
popularData: false,
}}
featuredData и PopularData обновляются согласно результат вызова API в саге
это мой саг-код
function* getSectionData(){ yield takeLatest(LOAD_SECTION_DATA, fetchSectionData) }
function* fetchSectionData(action){
try
{
var requestURL = `http://localhost:3001/v1/fetchData?page=` + action.section_name;
console.log('Request Url', requestURL)
const response = yield call(getRequest, requestURL);
var result = {}
if (action.section_name)
{
let sectionName = [action.section_name] + 'Data'
result[sectionName] = response.data
}
console.log('Request result', result)
yield put(sectionDataLoaded(result));
}
catch (err)
{
yield put(sectionDataLoadingError(err));
}}
export default function* HomePageSaga(){ yield all([getSectionData()]); }
я вызываю fetchSectionData ('Featured') *
sectionData{
featuredData: false,
popularData: [{
name: 'popular'
}]}
вместо
sectionData{
featuredData: [
{
name: 'featured'
}],
popularData: [
{
name: 'popular'
}]}