Un caso de uso que he encontrado, y sospecho que no puedo ser el único, es para un método como:¿Hay un método Rx para repetir el valor anterior periódicamente cuando no hay valores entrantes?
IObservable<T> Observable.RepeatLastValueDuringSilence(this IObservable<T> inner, TimeSpan maxQuietPeriod);
que devolver todos los artículos futuros de la observables interno, sino también, si el observable interno no llama a OnNext durante un cierto período de tiempo (maxQuietPeriod), simplemente repite el último valor (hasta, por supuesto, llamadas internas OnCompleted o OnError).
Una justificación sería que un servicio muestre periódicamente una actualización de estado periódica. Por ejemplo:
var myStatus = Observable.FromEvent(
h=>this.StatusUpdate+=h,
h=>this.StatusUpdate-=h);
var messageBusStatusPinger = myStatus
.RepeatLastValueDuringSilence(TimeSpan.FromSeconds(1))
.Subscribe(update => _messageBus.Send(update));
¿Algo como esto existe? ¿O estoy sobreestimando su utilidad?
Gracias, Alex
PD: Me disculpo por cualquier terminología/sintaxis incorrecta, ya que sólo estoy sólo para explorar Rx por primera vez.
¿A qué frecuencia debería seguir repitiendo? – Asti
@Asti: la intención era que esto debería ser especificado por maxQuietPeriod. Si la secuencia interna no ha producido un valor para maxQuietPeriod, se debe generar un valor repetido. – AlexC