Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android filter正在阻止其他代码向API发送数据_Android_Retrofit_Rx Java_Jobs_Evernote - Fatal编程技术网

Android filter正在阻止其他代码向API发送数据

Android filter正在阻止其他代码向API发送数据,android,retrofit,rx-java,jobs,evernote,Android,Retrofit,Rx Java,Jobs,Evernote,我在evernote作业中使用RxJava向API发送一些数据。到目前为止,这个代码一直运行良好。问题出在.filter中的某个地方,我认为它甚至没有进入getApiService().createReport(requestModel)方法,除非模型中有照片(那么report.getImages()不是null) public static Observable<Report> createReport(CreateReportModel model) { retu

我在evernote作业中使用RxJava向API发送一些数据。到目前为止,这个代码一直运行良好。问题出在
.filter
中的某个地方,我认为它甚至没有进入
getApiService().createReport(requestModel)
方法,除非模型中有照片(那么
report.getImages()
不是
null

    public static Observable<Report> createReport(CreateReportModel model) {
    return Observable.just(model)
            .filter(report -> report.getImages() != null)
            .flatMap(report -> {
                 return Observable.from(report.getImages())
                        .map(photoModel -> {
                            return photoModel;
                        })
                        .filter(photoModel -> photoModel.hasImage())
                        .filter(photoModel -> photoModel.getImage().exists())
                        .flatMap(photoModel -> uploadFile(photoModel)).toList();
            })
            .map(photoModels -> model)
            .flatMap(requestModel -> {
                return getApiService().createReport(requestModel)
                        .map(response -> {
                            return response;
                        });
            });
}

如果在<代码>过滤器< /代码>中没有报告>将不会执行任何操作。请考虑删除< /P>

   .map(photoModels -> model)
结束第一个可观察到的(您需要订阅它),然后从

Observable.just(model).flatMap(requestModel -> {
            return getApiService().createReport(requestModel)
                    .map(response -> {
                        return response;
                    });
        });

这将确保始终执行
getApiService
调用。

那么到底是什么不起作用呢?你说得对,如果项目被过滤掉,则不会调用api服务。如果没有图像,则不应执行第一个
.flatMap
(用于发送照片)但是第二个
.flatMap
用于发送报告,它应该可以工作(不工作)。
返回getApiService().createReport(requestModel)
从未调用过。我对RxJava有点陌生。你能帮助我订阅它的方式以及它将如何工作吗?最简单的方法就是将第一个块重写为普通java for Loop。我已经编辑了这个问题。我不明白。我如何重写第一个块。在编辑中有一个用于发送照片的函数,我可以在哪里调用该函数我不太明白你想说什么,请告诉我更多的信息。谢谢
   .map(photoModels -> model)
Observable.just(model).flatMap(requestModel -> {
            return getApiService().createReport(requestModel)
                    .map(response -> {
                        return response;
                    });
        });