Как я могу получить ценность от наблюдаемых

У меня есть эта функция в моем проекте Котлин. Я использую ReactiveNetwork – Android-библиотеку, которая прослушивает состояние сетевого подключения и подключается к Интернету с помощью RxJava Observables. Я новичок в реактивном программировании, и теперь мне нужно реорганизовать этот метод, чтобы использовать его во многих местах. Как я могу реорганизовать этот метод, чтобы просто вернуть состояние подключения к Интернету (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 }