我正在使用rxJava学习设计模式,并且遇到了异常的输出。通过输出isAbove
变量,我同时将true
和false
输出到控制台。预期值应为false
,因为1个国家/地区的人口少于一百万。谁能解释我为什么同时获得这两个价值?
public Single<Boolean>isAllCountriesPopulationMoreThanOneMillion(List<Country> countries) {
Single<Boolean> allAboveAMillion = Observable.fromIterable(countries).all(ctry -> ctry.population > 1000000);
allAboveAMillion.subscribe(
isAbove -> System.out.println("Are All countries above a million: " + isAbove)
//outputs true first then false, unsure why
);
return Observable.fromIterable(countries).all(ctry -> ctry.population > 1000000);
}
确定您仅调用了它吗?