【发布时间】:2018-12-28 04:29:42
【问题描述】:
需要帮助来解决 RxJava 中的返回值问题。所以,这是我到目前为止所做的:
private Observable<Boolean> updatedMenuItems() {
return Observable.fromIterable(getAliases())
.doOnNext(alias -> {
return ApiRepository.getMenuItemBlocks(alias)
.subscribeOn(Schedulers.io())
.flatMapIterable(list -> list)
.map(item -> item.getFileTimeStamp() == null ? "" : item.getFileTimeStamp().toString())
.toList()
.doOnSuccess(apiContents -> {
return Observable.fromCallable(DataStoreRepository::loadMenuItemsBlock)
.subscribeOn(Schedulers.io())
.flatMapIterable(list -> list)
.map(item -> item.fileTimeStamp == null ? "" : item.fileTimeStamp.toString())
.toList()
.map(dbContents -> {
return DBUtil.isContentEqual(dbContents, apiContents);
});
});
});
}
我需要从此方法返回Observable<Boolean> 数据类型,但在.doOnSuccess(...); 块内我收到有关返回值的错误。请你帮我解决这个问题。谢谢!
【问题讨论】:
-
doOnNext和doOnSuccess只观察链(应该仅用于副作用),它具有Consumer参数,返回类型为void。
标签: rx-java2