rxjava如何在flatmap resultselector中直接返回值

jtjikinw  于 2021-06-27  发布在  Java
关注(0)|答案(0)|浏览(134)

我有一种情况,我需要从flatmap使用resultselector来访问以前的api结果
黑色是流动
红色是依赖

采样时间任务

public static Single<byte[]> processData(){
        return Single.just(new byte[47]);
    }
    public static Single<Double> callAPI(int id, byte[] fileData){
        return Single.just(5.5);
    }
    public static Single<String> uploadData(String url){
        return Single.just("uploadResult");
    }

我的职能:

private void bigFunction(int id){

        processData().flatMap(new Function<byte[], SingleSource<Double>>() {
            @Override
            public SingleSource<Double> apply(byte[] bytes) throws Throwable {
                return callAPI(id, bytes);
            }
        }, new BiFunction<byte[], Double, Single<String>>() {
            @Override
            public Single<String> apply(byte[] processedBytes, Double apiResult) throws Throwable {

                return uploadData("urlFromAPIResult")
                        .map(new Function<String, String>() {
                            @Override
                            public String apply(String s) throws Throwable {
                                return s+123;
                            }
                        });
            }
        })

这里的问题是双函数返回一个单一的,所以我需要订阅

.subscribe(new SingleObserver<Single<String>>() { ...

我想要什么

.subscribe(new SingleObserver<String>() { ...

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题