effect_tw
@effect_tw

Как запустить saga-watcher, чтобы его saga-worker, выполнял другие саги только по завершение предыдущей?

Есть saga-watcher, в нем saga-worker выполняющий другие саги
Пример saga-worker'a
yield takeLatest(Actions.GET_INFO_ABOUT_USER.TRIGGER, getInfoAboutUser)

содержимое saga-worker'a
function* getInfoAboutUser(
  action: ReturnType<typeof GET_INFO_ABOUT_USER.trigger>,
): Generator<StrictEffect> {
  try {
    const { userId, value } = action.payload;
    yield put(Actions.GET_USER_DATA.trigger(userId));
    yield put(Actions.SET_USER_DATA_WITH_FETCH.trigger({ userId, value }));
  } catch (e) {
    console.log(e);
  }
}

И при выполнении саг в getInfoAboutUser, сага yield put(Actions.GET_USER_DATA.trigger(userId)); выполняет асихноронные действия, в то время как сага yield put(Actions.SET_USER_DATA_WITH_FETCH.trigger({ userId, value })); выполняется до завершения первой саги GET_USER_DATA.trigger, вопрос как в данном контексте рализации сделать так чтобы вторая сага вызывалась по завершению первой? аля putAwait
  • Вопрос задан
  • 67 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы