Taketill 未按文档记录工作
本文关键字:记录 工作 文档 Taketill | 更新日期: 2023-09-27 18:34:38
来自TakeUntil
运算符的文档(强调我的(:
TakeUntil 订阅并开始镜像源 Observable。它还监视您提供的第二个可观察量。如果第二个可观察量发出项目或发送终止通知,则 Taketill 返回的可观察量将停止镜像源可观察量并终止。
如果这是真的,那么为什么会阻止?
Observable.Never<Unit>()
.TakeUntil(Observable.Empty<Unit>())
.Wait();
Preston Guillot在评论部分说得很到位:
(旧的(MSDN 文档与主 Rx 站点的文档不同,仅声明
TakeUntil
"从源可观察序列返回值,直到另一个可观察量序列生成值">,而不考虑终止的可观察量。
我们来看看Observable.TakeUntil
的源代码,具体来说class O
它代表"终结者"Observable
。我们可以看到parent.OnCompleted
通知是在O.OnNext
和O.OnError
上发送的。
因此,您的代码阻塞的原因是Observable.Empty
(充当"终结者"(仅发出OnCompleted
通知。