在很多情況下,我發現自己需要從可觀察值訪問最近發射的值。我做這件事的方式是通過訂閱可觀察值和緩存值,因爲它們出現。例如見下文。然而,我看到有一堆像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