我将三个Observable与CombineLastest结合使用:
Observable<String> o1 = Observable.just("1");
Observable<String> o2 = Observable.just("2");
Observable<String> o3 = Observable.just("3");
Observable.combineLatest(o1, o2, o3, new Func3<String, String, String, Object>() {
@Override
public Object call(String s, String s2, String s3) {
return null;
}
});
我想被通知有关一个可观察物的第一次排放,而又不忽略后来的排放,我想第一位操作员会这样做。是否有类似这样的便捷运算符(示例):
o1.doOnFirst(new Func1<String, Void>() {
@Override
public Void call(String s) {
return null;
}
})
我认为doOnFirst
,take
如果您要处理流,那么可以通过简单的方法来实践:
public static <T> Observable<T> withDoOnFirst(Observable<T> source, Action1<T> action) {
return source.take(1).doOnNext(action).concatWith(source);
}
这样,动作仅绑定到第一项。
可以将其更改为处理可观察对象,这些可观察对象不受流添加skip
以跳过已采取项目的支持:
public static <T> Observable<T> withDoOnFirstNonStream(Observable<T> source, Action1<T> action) {
return source.take(1).doOnNext(action).concatWith(source.skip(1));
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句