Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.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
如何使用RxJava逐个读取字符串数组成员,并调用网络API获取第一个结果?_Java_Android_Arrays_Rx Java_Rx Android - Fatal编程技术网

如何使用RxJava逐个读取字符串数组成员,并调用网络API获取第一个结果?

如何使用RxJava逐个读取字符串数组成员,并调用网络API获取第一个结果?,java,android,arrays,rx-java,rx-android,Java,Android,Arrays,Rx Java,Rx Android,我有一个字符串数组,例如: cities=新字符串[]{“a”、“b”、“c”、“Berlin”、“e”} 我想用我的天气api的成员作为参数一个接一个地调用它,并获取第一个结果,这个结果不会引起任何异常,并且有一个天气结果(换句话说,它是一个城市的名称!) 我已经尝试过了,但是它在第一个异常时停止,并且不会继续与其他数组成员一起使用 Observable.from(cities) .flatMap(interactor::loadWeather)

我有一个字符串数组,例如:

cities=新字符串[]{“a”、“b”、“c”、“Berlin”、“e”}

我想用我的天气api的成员作为参数一个接一个地调用它,并获取第一个结果,这个结果不会引起任何异常,并且有一个天气结果(换句话说,它是一个城市的名称!)

我已经尝试过了,但是它在第一个异常时停止,并且不会继续与其他数组成员一起使用

Observable.from(cities)
            .flatMap(interactor::loadWeather)
            .filter(weatherCurrent -> weatherCurrent != null)
            .first()
            .observeOn(scheduler.mainThread())
            .subscribe(...
优先级是第一个结果,我想停止使用其他成员呼叫

根据示例字符串数组,api应使用
a
作为城市参数调用,不返回任何内容,使用
b
作为城市调用,不返回任何内容,但作为
Berlin
它将返回天气信息,而不使用
e
调用


有什么想法吗?

使用
onErrorResumeNext
concatMap

Observable.from(cities)
        .concatMap(city -> interactor
           .loadWeather(city)
           .onErrorResumeNext(Observable.empty()))
        .filter(weatherCurrent -> weatherCurrent != null)
        .first()
        .observeOn(scheduler.mainThread())
        .subscribe(...

flatMap
有一个过载,让你延迟任何参与观测的错误。没有解决问题谢谢你的回答,它真的有效,你救了我一天。