我想从RxJava中的Single.fromCallable {}返回true或false。是否有其他方法可以实现
private isBlockListAvailable():Boolean
{
Single.fromCallable {
//** data base query
blockRepo.getAllBlocks()
}.subscribeOn(Schedulers.io())
.subscribe({blockList : List<BlockList>
if (blockList> 0) {
return true // how can i achieve this
} else {
return false // how can i achieve this
}
})
}
预先感谢:)
答案 0 :(得分:0)
不,你不能。在subscription方法中无法返回值。详细了解其实现方式。
Single.subscribe(new Consumer<String>() {
@Override
public void accept(String s) throws Exception {
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
}
})
您可以看到Consummer类接受的方法是一种void。显然,它无法返回值。
另一种方法,如果您希望在订阅中操作布尔值,则可以创建Single.fromCallable。