gpt4 book ai didi

system.reactive - IObservable.Catch 可以继续使用相同的可观察对象吗

转载 作者:行者123 更新时间:2023-12-03 23:36:45 25 4
gpt4 key购买 nike

假设有一个IObservable:

IObservable<long> obs = ...;

我可以做以下事情来保证 Observable 永远不会停止吗?

IObservable<long> resilientObs = obs.Catch(obs);

因此,当捕获到异常时,继续执行生成异常的相同序列。

最佳答案

您只能使用 Cold 可观察对象(即每次返回新序列的可观察对象)执行此操作

obs.Retry();

但即便如此,你也不是在“恢复”一个 Observable,你只是重新启动它。

如果你想保持持久连接(比如,一个因错误而终止的网络套接字),你需要一个工厂函数 + Defer:

Observable.Defer(() => createNewObservable())
.Retry();

为了给您更好的建议,您需要告诉我们什么是 obs 的性质以及您想要做什么。

关于system.reactive - IObservable.Catch 可以继续使用相同的可观察对象吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6787065/

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