Есть ли разница между обработкой этих корневых саг? - PullRequest
0 голосов
/ 19 сентября 2018

Я читаю документацию redux-saga, и я заметил, что в учебнике для начинающих *1001* 1.1 мы запускаем все наши саги с помощью корневой саги, в которой используется комбинатор эффектов all:

// notice how we now only export the rootSaga
// single entry point to start all Sagas at once
export default function* rootSaga() {
  yield all([
    helloSaga(),
    watchIncrementAsync()
  ])
}

Это, в свою очередь, запускает helloSaga (которая ничего не делает), а также сагу watchIncrementAsync(), которая использует помощник takeEvery для обработки каждого действия INCREMENT_ASYNC.

Позже в документации, в 2.1 Использование Saga Helpers , я вижу, что они также говорят о параллельном сбрасывании саг, но это делается без использования комбинатора эффектов all,скорее просто путем объединения нескольких вызовов takeEvery:

// use them in parallel
export default function* rootSaga() {
  yield takeEvery('FETCH_USERS', fetchUsers)
  yield takeEvery('CREATE_USER', createUser)
} 

Если мы сделаем вид, что helloSaga() также использовал помощника takeEvery для внутреннего использования, в чем будет разница между использованием all и вызовом takeEveryдважды быть?

...