我怎样才能从可观察到的价值
我在我的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 }