[英]RxJava2 - Reuse operator sequence for multiple Rx chains
I have the following Rx chain: 我有以下Rx链:
compositeDisposable.add(manager.getObservable()
.map(objects -> modelMapper.map(objects))
.map(modelObjects -> {
cache.save(modelObjects);
return modelObjects ;
})
.flatMapIterable(modelObjects -> modelObjects)
.sorted(objectComparator)
.toList()
.map(modelObjects -> viewModelMapper.map(modelObjects))
.subscribe(this::onObjectsLoaded));
I want to extract the operators flatMapIterable(modelObjects -> modelObjects)
, sorted(objectComparator)
and toList()
into a separate method that I can reuse in multiple Rx chains to sort the objects, so the chain will look something like this: 我想将运算符flatMapIterable(modelObjects -> modelObjects)
, sorted(objectComparator)
和toList()
到一个单独的方法中,可以在多个Rx链中重复使用以对对象进行排序,因此该链看起来像这样:
compositeDisposable.add(manager.getObservable()
.map(objects -> modelMapper.map(objects))
.map(modelObjects -> {
cache.save(modelObjects );
return modelObjects ;
})
.compose(sortObjects())
.map(modelObjects -> viewModelMapper.map(modelObjects))
.subscribe(this::onObjectsLoaded));
Is is possible to create such a method? 是否可以创建这样的方法? Thanks! 谢谢!
Define a method that takes an Observable
and returns an Observable
: 定义一个采用Observable
并返回Observable
:
static <T> Observable<List<T>> sortListItem(Observable<List<T>> source,
Comparator<? super T> comparator) {
return source.flatMapIterable(v -> v)
.toSortedList(comparator)
.toObservable();
}
compositeDisposable.add(manager.getObservable()
.map(objects -> modelMapper.map(objects))
.map(modelObjects -> {
cache.save(modelObjects);
return modelObjects ;
})
.compose(ThisClass::sortListItem)
.map(modelObjects -> viewModelMapper.map(modelObjects))
.subscribe(this::onObjectsLoaded));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.