首页 > 解决方案 > Zip 异步和同步 observables

问题描述

我有一个同步可观察对象和 10 个其他异步可观察对象,它们依赖于同步可观察对象。如何将它们压缩在一起并获得最终结果?Zip 只接受 9 个参数。如果我必须将它分成 2 个 zip,该怎么做,因为我只有 1 个同步 observable。请帮忙。

下面是代码:这里的帐户是同步的..

可观察 aObservable = getAObservable(accountId); Account account = aObservable.toBlocking().single();

    Observable<List<C>> cObservable = getCObservable(saleInfo);
    Observable<B> bObservable = getBObservable(account);
    Observable<D> dObservable = getDObservable(account);
    Observable<E> eObservable = getEObservable(account);
    Observable<F> fObservable = getFObservable(account);
    Observable<G> gObservable = getGObservable(account);
    Observable<H> hObservable = getHObservable(account);
    Observable<I> iObservable = getIObservable(account);
    Observable<J> jObservable = getJObservable(account);

    Observable<SaleFile> observable =
            Observable.zip(
                    cObservable,
                    bObservable,
                    dObservable,
                    eObservable,
                    fObservable,
                    gObservable,
                    hObservable,
                    iObservable,
                    jObservable,
                    (o1, o2, o3, o4, o5, o6, o7, o8, o9) ->
                            new SaleFile()
                                    .withA(account)
                                    .withB(o1)
                                    .withC(o2)
                                    .withD(o3)
                                    .withE(o4)
                                    .withF(o5)
                                    .withG(o6)
                                    .withH(o7)
                                    .withI(o8)
                                    .withJ(o9));

    return observable.toBlocking().single();

标签: javarxjsobservablerx-java

解决方案


推荐阅读