#javascript #reactjs #redux-saga
#javascript #reactjs #переопределение-сага
Вопрос:
У меня есть сага:
function* saga1() {
yield fork(saga2);
yield all(
users.map((user) => put('action1', user))
);
console.log('finished'); // ---> gets logged immediately, doesnt wait for saga2
}
function* saga2() {
const channel = yield actionChannel('action1');
while (true) {
const r = yield take(channel);
yield call(api, r);
}
}
Вопрос: есть ли способ выполнять какое-либо действие ПОСЛЕ каждого вызова из saga2
завершенного? Итак, я могу отправить действие или что-либо ПОСЛЕ завершения канала из saga2?
Комментарии:
1. Но в настоящее время (по крайней мере, в предоставленном примере) канал никогда не завершается (закрыт)
2. @AlekseyL. как его закрыть тогда?
3. Обычно это
channel.close()
. Но из приведенного выше примера неясно, что вы пытаетесь сделать. Зачем вам нужен канал здесь (а не просто прямой вызов sagas)?4. @AlekseyL. Потому что я хочу, чтобы все вызовы выполнялись последовательно, а не параллельно
5. Итак, запустите их последовательно 🙂Как это связано?