ВВОД действия после успешного канала действия

#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. Итак, запустите их последовательно 🙂Как это связано?