我有一个IObservable可以实现为BehaviorSubject,ReplaySubject或类似的东西。
在以下场景中,我不希望订阅者获取最后一个缓存值,而是希望它获取下一个值来获取。有什么想法吗?
var subject = new BehaviorSubject(1);
subject.OnNext(2);
subject.Subscribe(x => Console.WriteLine(x));
subject.OnNext(3);
请注意,我要打印的数字是3 ...我猜我需要在“subject.Subscribe”之间添加一个反应式扩展方法来获取新的observable或其他东西。
答案 0 :(得分:1)
这应该做你想要的:
var subject = new BehaviorSubject(1);
subject.OnNext(2);
subject
.Skip(1) //
.Subscribe(x => Console.WriteLine(x));
subject.OnNext(3);
答案 1 :(得分:0)
在您的特定代码段中,您可以使用常规主题并获得所需内容。或者对于通用的冷Observable,您可能需要someSubject.Publish().RefCount()
答案 2 :(得分:0)
这是否适合你呢?
var subject = new BehaviorSubject<int>(1);
subject.OnNext(2);
var co = subject.Publish();
co.Subscribe(x => Console.WriteLine(x));
subject.OnNext(3);
co.Connect();