gpt4 book ai didi

system.reactive - 是否有 RxJava 的 doOnSubscribe 的 C# System.Reactive 版本?

转载 作者:行者123 更新时间:2023-12-01 00:31:37 25 4
gpt4 key购买 nike

在 RxJava 中,我倾向于使用 Observable.doOnSubscribe 来记录订阅 observable 的时间(以了解何时发生一些创建\获取数据的工作),并发现在调用某些繁重工作时捕获错误很有用。
Do()运营商似乎确实提供 doOnNext(), doOnError(), doOnCompleted() RxJava 功能但是我很想念它,它似乎没有提供类似于 doOnSubscribe() 的功能.

我可以在 create\fetch 数据代码中添加日志记录,但通常这可能是通过 3rd 方库获取的 Observable,因此与 RxJava 的 doOnSubscribe() 等操作符相比,这并不方便。它似乎。

我是否错过了 doOnSubscribe() 的 C# 版本?或者有没有替代方案可以解决我的需求?

最佳答案

只需使用 Observable.Defer() :

var someObservable = ...;
var newObservable = Observable.Defer(() =>
{
Console.WriteLine("subscribed!");
return someObservable;
});

如果您愿意,您可以制作自己的扩展程序:
public static IObservable<T> DoOnSubscribe(this IObservable<T> source, Action action)
{
return Observable.Defer(() =>
{
action();
return source;
});
}

关于system.reactive - 是否有 RxJava 的 doOnSubscribe 的 C# System.Reactive 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43744969/

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