如何在设定的时间后处理一个可观察对象
本文关键字:一个 对象 观察 后处理 时间 | 更新日期: 2023-09-27 18:07:38
我有一个可观察对象,它以固定的速率每2秒向某个观察者发送数据。我想要一种方式,在2分钟过去后,发送数据的可观察对象将在告诉主体它完成后自行处理。我使用2个计时器,一个用于发射2秒间隔的数据,另一个用于总2分钟持续时间,因此它可以发送OnComplete
。我想知道是否有一种方法,也处置自己后2分钟已完成使用计时器?
我的代码看起来像这样:
Observable.Create<>(
observer =>
{
var timer = new Timer();
timer.Elapsed += (s, e) => observer.OnNext( *send some string* );
timer.start();
return Disposable.Empty;
}
)
这真的很简单。只需这样做:
Observable
.Interval(TimeSpan.FromSeconds(2.0))
.TakeUntil(Observable.Timer(TimeSpan.FromMinutes(2.0)))
.Subscribe(x =>
{
});
这将在2分钟后自动结束可观察对象,并为你取消订阅。