Patrón para observables que incluye reconocimiento

Estoy trabajando en algo que está grabando datos provenientes de una cola. Fue bastante fácil procesar la cola en un Observable para que pueda tener múltiples puntos finales en mi código que reciben la información en la cola.

Además, puedo estar seguro de que la información llega en orden. Ese bit funciona muy bien también, ya que los Observables aseguran eso.Pero, una parte difícil es que no quiero que el Observador sea notificado de lo siguiente hasta que haya completado el procesamiento de lo anterior. Pero el procesamiento realizado por el observador es asíncrono.

Como un ejemplo más concreto que probablemente sea lo suficientemente simple como para seguir. Imagina que mi cola contiene URL. Los expongo como un Observable en mi código. Suscribo un observador cuyo trabajo es buscar las URL y escribir el contenido en el disco (este es un ejemplo artificial, así que no se preocupe por estos detalles). El punto importante es que buscar y guardar son asíncronos. Mi problema es que no quiero que el observador reciba la "siguiente" URL del Observable hasta que haya completado el procesamiento anterior.

Pero la llamada anext en la interfaz del observador vuelvevoid. Por lo tanto, no hay forma de que el Observador se comunique conmigo que haya completado la tarea asincrónica.

¿Alguna sugerencia? Sospecho que probablemente haya algún tipo de operador que podría codificarse que básicamente retendría valores futuros (¿ponerlos en la memoria?) Hasta que de alguna manera supiera que el Observador estaba listo para ello. Pero esperaba que algo así ya existiera siguiendo algún patrón establecido.

Respuestas a la pregunta(3)

Su respuesta a la pregunta