我怎样才能从可观察到的价值

我在我的Kotlin项目中有这个function。 我正在使用ReactiveNetwork – Android库监听网络连接状态以及与RxJava Observables的Internet连接。 我是新来的反应式编程,现在我需要重构这个方法在很多地方使用这个。 我怎样才能重构此方法只是返回互联网连接状态(isConnected)?

 private fun downloadProductIfConnected(arguments: Bundle){ ReactiveNetwork.checkInternetConnectivity().subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe{ isConnected -> if (isConnected){ downloadAndOpenProduct(arguments) }else{ displayConnectionErrorDialog(arguments) } } } 

这里可以利用高阶函数 ,如下所示

 private fun downloadProductIfConnected(callback:(Boolean)->Any){ ReactiveNetwork.checkInternetConnectivity().subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe{ isConnected -> callback(isConnected) } } 

你可以这样打电话

 downloadProductIfConnected { isConnected-> onConnectionResult(isConnected) } fun onConnectionResult(isConnected: Boolean){ //do something with isConnected }