在很多情况下,我发现自己需要从可观察值访问最近发射的值。我做这件事的方式是通过订阅可观察值和缓存值,因为它们出现。例如见下文。然而,我看到有一堆像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);
}
你最终使用了我的一些建议还是你实现了自己的方法? – supertopi
我想尽量避免需要这样做,而且我最大限度地围绕observables和围绕可变变量构造我的代码,这样做更容易。如果我想要最近,我使用CombineLatest或WithLatestFrom。 – JustinM