public static IDisposable Subscribe <T>(this IObservable <T> source, Action <T> onNext, Action <Exception> onError, Action onComplete) { return(source.Subscribe(AnonymsousObserver.Create <T>(onNext, onError, onComplete))); }
public static IObservable <T> Where <T>(this IObservable <T> source, Predicate <T> predicate) { // func函数指针,没有带泛型的版本 IDisposable FuncSubscribe(IObserver <T> observer) { void FilterOp(T value) { var vaild = predicate(value); if (vaild == true) { observer.OnNext(value); } } // 因为需要对source进行数据筛选,重写了OnNext方法 var disposable = source.Subscribe(AnonymsousObserver.Create <T>(FilterOp, observer.OnError, observer.OnCompleted)); return(disposable); } // 入口函数如果有泛型版本,必须指定约束之后的数据类型 return(AnonymsousObservable.Create <T>(FuncSubscribe)); }
public static IDisposable Subscribe <T>(this IObservable <T> source) { return(source.Subscribe(AnonymsousObserver.Create <T>(_ => { }, _ => { }, () => { }))); }
public static IDisposable Subscribe <T>(this IObservable <T> source, Action <T> onNext) { return(source.Subscribe(AnonymsousObserver.Create <T>(onNext, _ => { }, () => { }))); }