如何从RxJava中的Single获得收益

时间:2018-09-10 07:02:16

标签: android rx-java observable

我想从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
                }
            })
}

预先感谢:)

1 个答案:

答案 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。