首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RxJava的C# System.Reactive版本有doOnSubscribe吗?

RxJava的C# System.Reactive版本有doOnSubscribe吗?
EN

Stack Overflow用户
提问于 2017-05-02 18:37:34
回答 1查看 260关注 0票数 5

在RxJava中,我倾向于在订阅可观测值时使用Observable.doOnSubscribe进行日志记录(了解创建\fetch数据的某些工作何时发生),并发现在调用某些繁重工作时发现错误是有用的。

Do()操作符似乎确实提供了doOnNext(), doOnError(), doOnCompleted() RxJava功能,尽管我忽略了它,但它似乎没有提供类似于doOnSubscribe()的功能。

我可以将日志添加到create\fetch数据代码中,但是这通常是通过第三方库获得的可观察到的源,因此与拥有一个操作符(如RxJava的doOnSubscribe() )不太方便。

我是错过了C#版本的doOnSubscribe(),还是有一种替代方案可以解决我的需求?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-02 19:13:40

只需使用Observable.Defer()

代码语言:javascript
复制
var someObservable = ...;
var newObservable = Observable.Defer(() =>
{
    Console.WriteLine("subscribed!");
    return someObservable;
});

如果您愿意,可以自己扩展:

代码语言:javascript
复制
public static IObservable<T> DoOnSubscribe(this IObservable<T> source, Action action)
{
    return Observable.Defer(() =>
    {
        action();
        return source;
    });
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43744969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档