如何使用 Bifunction Single 和 Observable 实现 Observable zip?

byc*_*fly 5 android observable

如何使用 Bifunction 正确实现 Observable.zip?

一个返回一个 Single,一个返回一个 Observable,不确定这是否可能。

感谢您的评论,这是我的更新。我不确定在下面的 BiFunction 中放什么

    Observable.zip(
            mCurrentUserViewModel.getUserProfile(getUserProfileRequest).toObservable(),
            mTopicsByCurrentUserViewModel.getTopicsByCreator(getTopicsByCreatorRequest)),
            new BiFunction<Single<GetUserProfileResponseBody>, Observable<Response<GetTopicsByCreatorResponseBody>>, **what do i put here**>()
    );
Run Code Online (Sandbox Code Playgroud)

Mar*_*een 0

zip 函数示例:

    private Observable<String> stringObservable() {
        return Observable.just("D");
    }

    private Observable<Integer> integerObservable() {
        return Observable.just(1);
    }

    private Observable<String> resultObservable(){
        return Observable.zip(stringObservable(), integerObservable(), new BiFunction<String, Integer, String>() {
            @Override public String apply(String s, Integer integer) throws Exception {
                return s + integer;
            }
        });
    }

    private Observable<String> resultObservableLambda(){
        return Observable.zip(stringObservable(), integerObservable(), (s, i) -> s + i);
    }
Run Code Online (Sandbox Code Playgroud)

您缺少的第三项是您的返回类型。那么你想要返回的聚合类型是什么——在这个例子中String,返回的是一个新的 Observable Observable<String>