Beispiel #1
0
 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)));
 }
Beispiel #2
0
        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));
        }
Beispiel #3
0
 public static IDisposable Subscribe <T>(this IObservable <T> source)
 {
     return(source.Subscribe(AnonymsousObserver.Create <T>(_ => { }, _ => { }, () => { })));
 }
Beispiel #4
0
 public static IDisposable Subscribe <T>(this IObservable <T> source, Action <T> onNext)
 {
     return(source.Subscribe(AnonymsousObserver.Create <T>(onNext, _ => { }, () => { })));
 }