gpt4 book ai didi

c# - 使用 Switch 语句时如何处理内部可观察对象

转载 作者:太空狗 更新时间:2023-10-30 01:16:29 24 4
gpt4 key购买 nike

我有一个嵌套的 IObservable,我正在使用来自 Rx 的 switch 语句,它帮助我处理之前的序列。但是如果我想手动处理怎么办?处置外部序列不是一种选择。

_performSearchSubject
.Select(_ => return PerformQuery())
.Switch()
.Subscribe(HandleResponseStream, HandleError);

执行查询返回 IObservable<Result> ;

最佳答案

一段时间后我自己找到了...所以答案是:

您可以使用 TakeUntil(IObservable<TOther>) , 然后传入一个新的主题,只要你想取消以前的流就可以调用它。我认为这类似于底层流中 Switch() 语句的作用。

最终代码看起来像这样:

Subject<Unit> _cancellationObservable = new Subject<Unit>();

_performSearchSubject
.Select(_ => {
return PerformQuery().TakeUntil(_cancellationObservable);
})
.Switch()
.Subscribe(HandleResponseStream, HandleError);

每当我想取消它时,我就调用这个人:

_cancellationObservable.OnNext(Unit.Default);

关于c# - 使用 Switch 语句时如何处理内部可观察对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35013412/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com