Я хочу вызывать 2 вызова API последовательно.
Два apis работают нормально по отдельности.
Я делаю сагу (?), Которая делает
yield put(createAction1(arg1))
yield put(createAction2(arg2))
, но я думаю, что они запускаются одновременно (порядок выполнения не гарантируется)
Я погуглил и обнаружил проблемы с github, которыепредлагаю сделать
response1 = yield call(apiCallFunc, createAction1(arg1))
response2 = yield call(apiCallFunc, createAction2(arg2))
Тогда мне придется success
действия для response1 и response2.
Интересно, нет ли способа повторно использовать уже созданную сагу (?), используя put
?
Я не знаю правильного имени для checkout
в следующем примере.Я назвал их сагой (?) В своем вопросе .. Я хотел бы использовать уже существующие checkout
или rootSaga
, которые обрабатывают CHECKOUT_REQUEST
действие ..
Скажем, у меня есть function* checkout1() function* checkout2, function* checkout3
внутри checkout1
Я хотел бы использовать checkout2
и checkout3
function* checkout() {
// query the state using the exported selector
const cart = yield select(getCart)
// ... call some API endpoint then dispatch a success/error action
}
export default function* rootSaga() {
while (true) {
yield take('CHECKOUT_REQUEST')
yield fork(checkout)
}
}