【发布时间】:2017-01-18 16:14:31
【问题描述】:
在许多情况下,我发现自己需要从 observable 访问最近发出的值。我这样做的方法是订阅可观察和缓存的值,因为它们出现。例如,请参见下文。但是我看到有一堆方法,如 Observable.MostRecent、Observable.Latest、Replay(1) 等,它们似乎可以完成我正在寻找的东西,但我不知道如何使用它们。有没有比我下面使用的方法更好的方法?
public class WordPrinterWithCache
{
string _lastWord = string.Empty;
public WordPrinterWithCache(IObservable<string> words)
{
words.Subscribe(w => _lastWord = w);
}
public void PrintMostRecent() => Console.WriteLine(_lastWord);
}
【问题讨论】:
-
您最终是采用了我的一些建议还是实现了自己的方法?
-
我试图完全避免需要这样做,而且我将代码构建在可观察对象周围而不是可变变量周围,这样做更容易。如果我想要最新的,我使用 CombineLatest 或 WithLatestFrom。
标签: system.reactive