Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

114
Vistas
Ejecutar sagas en secuencia

Estoy tratando de escribir un código que ejecutará varias sagas de bloqueo en secuencia. Para mi caso de uso, saga1 debe completarse antes de que saga2 pueda comenzar a ejecutarse. Aquí hay un código que muestra una versión simplificada de lo que estoy tratando de hacer:

 function* logger() { console.log('spy 1'); } function* logger2() { console.log('spy2'); } function* spy1() { yield takeEvery('*', logger); } function* spy2() { yield takeEvery('*', logger2); } export default function* rootSaga() { yield call(spy1); yield call(spy2); }

Cuando envío una acción, solo llego al primer archivo console.log. Sé que si uso fork() en lugar de call() puedo hacer que ambos se ejecuten, sin embargo, no quiero que se ejecuten en paralelo. ¿Cómo puedo completar mi primera función de registrador y permitir que Saga pase a la segunda?

¡Gracias!

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

¿Qué hay de crear un solo observador que simule lo que hace takeEvery pero de manera secuencial?

 function* logger() { yield delay(1000); console.log("logger 1"); } function* logger2() { console.log("logger 2"); } function* watcher() { while (yield take("*")) { yield call(logger); yield call(logger2); } } function* rootSaga() { yield call(watcher); }

Uno de los puntos que me gustaría mencionar aquí es que, en primer lugar, takeEvery usa una fork interna y luego, de acuerdo con la documentación de takeEvery :

No hay garantía de que las tareas terminen en el mismo orden en que se iniciaron.

así que tal vez usar takeEvery no logre lo que necesita.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda