RxJava – Observable的zip列表

前端之家收集整理的这篇文章主要介绍了RxJava – Observable的zip列表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个Observables列表(Rx Java 1).
  1. List<Observable> observableList = new ArrayList<>();

它可以包含至少1个Observable.每个都有相同类型的结果.

如何压缩所有Observable的结果?

我想到了zip-operator但它不支持List,我不知道可观察量的数量(可以是1,2,3,4 ….)

解决方法

您可以使用静态 zip(java.lang.Iterable<? extends Observable<?>> ws,FuncN<? extends R> zipFunction) method.

它是一个zip方法,它接受一个I​​terable of Observables和一个FuncN(它的调用方法采用varargs参数)并使用它将相应的发射对象组合成结果,以便新返回的Observable省略.

例如,您可以这样做:

  1. Observable.zip(observableList,new FuncN(){
  2. public ReturnType call(java.lang.Object... args){
  3. ReturnType result; //to be made
  4. //preparatory code for using the args
  5. for (Object obj : args){
  6. ReturnType retObj = (ReturnType)obj;
  7. //code to use the arg once at a time to combine N of them into one.
  8. }
  9. return result;
  10. }
  11. });

猜你在找的Java相关文章