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...