observeOn
Reemite todas las notificaciones del Observable fuente con el planificador especificado
Descripción
Utiliza el planificador especificado, desde fuera del Observable.
observeOn
es un operador que acepta un planificador como primer parámetro, que se utiliza para replanificar las notificaciones emitidas por el Observable fuente. Puede resultar especialmente útil si no se tiene control sobre el planificador interno de un Observable, pero se quiere controlar cuándo se emiten sus valores.
El Observable retornado emite las mismas notificaciones (valores next
, y eventos de tipo error
y complete
) que el Observable fuente, pero replanificadas con el planificador proporcionado. Se debe tener en cuenta que esto no implica que el planificador interno del Observable fuente vaya a ser reemplazado. Se utilizará el planificador original, pero en el momento en el que el Observable fuente emita un valor, este será replanificado inmediatamente utilizando el planificador que se le haya proporcionado a observeOn
. Un ejemplo de antipatrón sería utilizar observeOn
sobre un Observable que emita muchos valores de forma síncrona, para emitirlos de forma asíncrona. Para ello, el planificador se le debería pasar por parámetros directamente al Observable fuente (normalmente al operador que crea el Observable.) observeOn
se limita a retrasar las notificaciones para asegurarse de que se emiten en el momento indicado.
De hecho, el operador observeOn
acepta un segundo parámetro, que especifica en milisegundos el retraso con el que se emitirán las notificaciones. La diferencia principal entre delay
y observeOn
es que este último retrasará todas las notificaciones - incluidas las notificaciones de error - mientras que delay
emitirá las notificaciones de error emitidas por el Observable fuente de manera inmediata. En general, se recomienda utilizar el operador delay
cuando se quiera aplicar un retraso a los valores del flujo, mientras que observeOn
debe utilizarse para especificar qué planificador utilizar con las emisiones de notificaciones en general.
Ejemplos
Utilizar el planificador animationFrameScheduler para que la animación sea más fluida
Ejemplo de la documentación oficial
Asegurar que los valores del subscribe se llaman justo antes del repintado del navegador
Recursos adicionales
Last updated