RxJava v1.2.0 發布,一個實現異步操作的庫

jopen 8年前發布 | 18K 次閱讀 RxJava Java VM Android

 

RxJava一個在 Java VM 上使用可觀測的序列來組成異步的、基于事件的程序的庫。說到根上,它就是一個實現異步操作的庫,而別的定語都是基于這之上的。同樣是做異步,為什么人們用它,而不用現成的 AsyncTask / Handler / XXX / ... ?,原因是RxJava簡潔,異步操作很關鍵的一點是程序的簡潔性,因為在調度過程比較復雜的情況下,異步代碼經常會既難寫也難被讀懂。 Android 創造的 AsyncTask 和Handler ,其實都是為了讓異步代碼更加簡潔。RxJava 的優勢也是簡潔,但它的簡潔的與眾不同之處在于,隨著程序邏輯變得越來越復雜,它依然能夠保持簡潔。

 

更新日志

促進@Beta標準

  • in rx.Observable
    • create(SyncOnSubscribe<S, T>)
    • doOnRequest(Action1<Long>)
    • flatMap(Func1<? super T, ? extends Observable<? extends R>>, Func1<? super Throwable, ? extends Observable<? extends R>>, Func0<? extends Observable<? extends R>>, int)
    • flatMap(Func1<? super T, ? extends Observable<? extends R>>, int)
    • flatMap(Func1<? super T, ? extends Observable<? extends U>>, Func2<? super T, ? super U, ? extends R>, int)
    • flatMapIterable(Func1<? super T, ? extends Iterable<? extends R>>, int) rx.Observable.flatMapIterable(Func1<? super T, ? extends Iterable<? extends U>>, Func2<? super T, ? super U, ? extends R>, int)
    • fromCallable(Callable<? extends T>)
    • toSingle()
  • rx.Single (the class itself)
    • fromCallable(Callable<? extends T>)
  • rx.SingleSubscriber<T>
  • in rx.observables.ConnectableObservable
    • autoConnect()
    • autoConnect(int, Action1<? super Subscription>)
    • autoConnect(int)
  • rx.observables.SyncOnSubscribe<S, T>
  • in rx.subjects.AsyncSubject
    • getThrowable()
    • getValue()
    • hasCompleted()
    • hasThrowable()
    • hasValue()
  • in rx.subjects.BehaviorSubject
    • getThrowable()
    • getValue()
    • getValues()
    • getValues(T[])
    • hasCompleted()
    • hasThrowable()
    • hasValue()
  • in rx.subjects.PublishSubject
    • getThrowable()
    • hasCompleted()
    • hasThrowable()
  • in rx.subjects.ReplaySubject
    • getThrowable()
    • getValue()
    • getValues()
    • getValues(T[])
    • hasAnyValue()
    • hasCompleted()
    • hasThrowable()
    • hasValue()
    • size()

促進@Experimental到@Beta

  • rx.BackpressureOverflow
  • in rx.Observable
    • concatDelayError(Iterable<? extends Observable<? extends T>>)
    • concatDelayError(Observable<? extends Observable<? extends T>>)
    • concatEager(Iterable<? extends Observable<? extends T>>, int)
    • concatEager(Iterable<? extends Observable<? extends T>>)
    • concatEager(Observable<? extends Observable<? extends T>>, int)
    • concatEager(Observable<? extends Observable<? extends T>>)
    • concatEager(Observable<? extends T>, Observable<? extends T>, Observable<? extends T>, Observable<? extends T>, Observable<? extends T>, Observable<? extends T>, Observable<? extends T>, Observable<? extends T>, Observable<? extends T>)
    • concatEager(Observable<? extends T>, Observable<? extends T>, Observable<? extends T>, Observable<? extends T>, Observable<? extends T>, Observable<? extends T>, Observable<? extends T>, Observable<? extends T>)
    • concatEager(Observable<? extends T>, Observable<? extends T>, Observable<? extends T>, Observable<? extends T>, Observable<? extends T>, Observable<? extends T>, Observable<? extends T>)
    • concatEager(Observable<? extends T>, Observable<? extends T>, Observable<? extends T>, Observable<? extends T>, Observable<? extends T>, Observable<? extends T>)
    • concatEager(Observable<? extends T>, Observable<? extends T>, Observable<? extends T>, Observable<? extends T>, Observable<? extends T>)
    • concatEager(Observable<? extends T>, Observable<? extends T>, Observable<? extends T>, Observable<? extends T>)
    • concatEager(Observable<? extends T>, Observable<? extends T>, Observable<? extends T>)
    • concatEager(Observable<? extends T>, Observable<? extends T>)
    • concatMapDelayError(Func1<? super T, ? extends Observable<? extends R>>)
    • concatMapEager(Func1<? super T, ? extends Observable<? extends R>>, int, int)
    • concatMapEager(Func1<? super T, ? extends Observable<? extends R>>, int)
    • concatMapEager(Func1<? super T, ? extends Observable<? extends R>>)
    • delaySubscription(Observable<U>)
    • distinctUntilChanged(Func2<? super T, ? super T, Boolean>)
    • mergeDelayError(Observable<? extends Observable<? extends T>>, int)
    • onBackpressureBuffer(long, Action0, Strategy)
    • switchMapDelayError(Func1<? super T, ? extends Observable<? extends R>>)
    • switchOnNextDelayError(Observable<? extends Observable<? extends T>>)
    • toCompletable()
    • toSortedList(Func2<? super T, ? super T, Integer>, int)
    • toSortedList(int)
    • using(Func0<Resource>, Func1<? super Resource, ? extends Observable<? extends T>>, Action1<? super Resource>, boolean)
  • in rx.observables.BlockingObservable
    • subscribe()
    • subscribe(Action1<? super T>, Action1<? super Throwable>, Action0)
    • subscribe(Action1<? super T>, Action1<? super Throwable>)
    • subscribe(Action1<? super T>)
    • subscribe(Observer<? super T>)
    • subscribe(Subscriber<? super T>)
  • rx.Completable
  • in rx.Single
    • defer(Callable<Single<T>>)
    • delay(long, TimeUnit, Scheduler)
    • delay(long, TimeUnit)
    • delaySubscription(Observable<?>)
    • doAfterTerminate(Action0)
    • doOnError(Action1<Throwable>)
    • doOnSubscribe(Action0)
    • doOnSuccess(Action1<? super T>)
    • doOnUnsubscribe(Action0)
    • lift(Operator<? extends R, ? super T>)
    • onErrorResumeNext(Func1<Throwable, ? extends Single<? extends T>>)
    • onErrorResumeNext(Single<? extends T>)
    • toBlocking()
    • toCompletable()
    • using(Func0<Resource>, Func1<? super Resource, ? extends Single<? extends T>>, Action1<? super Resource>, boolean)
    • using(Func0<Resource>, Func1<? super Resource, ? extends Single<? extends T>>, Action1<? super Resource>)
  • rx.exceptions.CompositeException.CompositeException(Throwable...)
  • in rx.exceptions.Exceptions
    • throwOrReport(Throwable, Observer<?>, Object)
    • throwOrReport(Throwable, Observer<?>)
    • throwOrReport(Throwable, SingleSubscriber<?>)
    • rx.singles.BlockingSingle<T>

去除

  • in rx.Observable
    • extend(Func1<OnSubscribe<T>, R>) : use to(Func1) instead
    • fromAsync() : renamed to fromEmitter()
  • in rx.Completable
    • CompletableSubscriber : now rx.CompletableSubscriber
    • CompletableOnSubscribe : renamed to Completable.OnSubscribe
    • CompletableOperator : renamed to Completable.Operator
    • CompletableTransformer : renamed to Completable.Transformer

下載

 

本站原創,轉載時保留以下信息:
本文轉自:深度開源(open-open.com)
原文地址:http://www.baiduhome.net/news/view/1f736dbf

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!