我知道以下是阻塞调用,会返回可观察序列中的第一个值:
var result = myObservable.First();
根据我使用的主题类型不同,会产生不同的影响:
- Subject - First() 将会阻塞,直到下一个 OnNext() 被调用,这意味着最终这将是最新的值
- BehaviorSubject - First() 将会阻塞,直到至少有一个值通过 OnNext() 推送,因为 BehaviorSubject 跟踪最后一个值,这将是最新的值
- ReplaySubject - First() 将会阻塞,直到至少有一个值通过 OnNext() 推送,但是在许多项已经通过 OnNext() 推送的情况下,它将是其缓冲区中的第一个而不是最后一个
现在我正在尝试找到一种一致的方法来获取最后一个值,无论使用哪个基础 Observable。
有任何想法吗?