RxJava 建立操作符 defer

2021-07-10 01:14:17 字數 749 閱讀 7399

defer的英文意思就是推遲,在這裡是推遲observable的建立,defer操作符是直到有訂閱者訂閱時,才通過observable的工廠方法建立observable,defer能保證observable的狀態是最新的:

value = 1;

observable justobservable = observable.just(value);

observable deferobservable = observable.defer(new func0>()

});value = 2;

justobservable.subscribe(new action1()

});deferobservable.subscribe(new action1()

});

結果為:

02-19 16:49:45.093 10258-10258/com.rxandroid.test1 d/----->: ------>justobservable:1

02-19 16:49:45.093 10258-10258/com.rxandroid.test1 d/----->: ------>deferobservable:2

defer操作符也是由create操作符建立的:原始碼:

public final static observable defer(func0t>> observablefactory)

RxJava 建立操作符create

create操作符是所有建立操作符的源頭,其他建立型的操作符都是通過create操作符來建立的 observable.create new observable.onsubscribe int i 1 0 模擬發生異常 會自動執行onerror throwable e 方法 注意 訂閱是可以取消的,...

RxJava筆記 RxJava操作符

用來建立observable。public static observablecreate onsubscribef 把其他型別的物件和資料型別轉化成observable。observable.just 123 把其他型別的物件和資料型別轉化成observable。與just區別在與引數返回值不同 ...

RxJava操作符學習

操作符學習推薦閱讀 官方英文 翻譯中文 先來看乙個簡單的例子 被觀察者 observable.onsubscribeintegeronsubscribe new observable.onsubscribe 觀察者 subscriberintegersubscriber new subscriber...