RxJava – Observable的zip列表

前端之家收集整理的这篇文章主要介绍了RxJava – Observable的zip列表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个Observables列表(Rx Java 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省略.

例如,您可以这样做:

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

猜你在找的Java相关文章