給定一個Observable,一旦調用了Subscribe,就會開始推送事件。如何將序列轉換爲IEnumerable。從IObservable轉換爲IEnumerable的無功擴展
在2010年,Jon Skeet寫到了他對RX的第一印象,並寫道這與我所需要的相當。
public static List<T> ToList<T>(this IObservable<T> source)
{
List<T> ret = new List<T>();
source.Subscribe(x => ret.Add(x));
return ret;
}
https://codeblog.jonskeet.uk/2010/01/16/first-encounters-with-reactive-extensions/
雖然這種解決方案會工作好像應該有一個更好的辦法。
我們真正感興趣的是await
可觀察的能力,其行爲與Subscribe類似。
await observable.ToList()
但是,這似乎不適用於我。
我也看着這兩個方法
observable.ToEnumerable
observable.Next
我打算用它來寫一些單元測試多一點信息。
- 我正在使用
ReplaySubject
並用測試替代品執行一系列操作。 - 通過
OnNext
記錄給代理人的電話。 - 我可以得到調用列表並聲明它們是正確的。
我剛纔意識到我沒有辦法完成流 –
已更新的答案。 – Shlomo
它似乎沒有可能在訂閱方法 –