es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

suscribirse después de insertar los datos en Repositorios Reactivos

Soy un principiante completo en el mundo reactivo, así que mientras revisaba algunos ejemplos en Reactive Repositories, encontré lo siguiente:

reactiverepository.save(employee).subscribe() // me suscribo para que el publicador emita los datos

reactiverepository.findAll() // ¿sin subscribe()?

Sé que para que un publicador (Flux en el caso anterior) emita los datos, necesitamos suscribirnos a él con subscribe(). Pero, ¿por qué no tenemos las mismas llamadas a subscribe() en otros métodos CRUD como en el ejemplo anterior? ¿Qué me estoy perdiendo aquí?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    En el ejemplo anterior, se utiliza reactiverepository.save(employee).subscribe() porque se está guardando un nuevo registro en la base de datos y queremos esperar a que se guarde antes de continuar.

    Por otro lado, reactiverepository.findAll() retorna un Flux que emite varios registros y no es necesario esperar a que se emitan todos los registros antes de continuar la ejecución. Depende del consumidor de este Flux decidir cuándo y cómo consumir los registros emitidos por él.

    Por lo tanto, no es necesario hacer una llamada a subscribe() en el caso de reactiverepository.findAll(), ya que no es necesario bloquear la ejecución hasta que se emitan todos los registros. La llamada a subscribe() debe hacerla el consumidor del Flux cuando desee comenzar a consumir los datos emitidos por él.

    En resumen, la llamada a subscribe() no es necesaria en todos los métodos CRUD porque depende del caso de uso y del comportamiento que el desarrollador desee lograr.

Comments are closed.