Я хочу вернуть Observable в функцию Subscribe, но я прочитал документ, что это невозможно.
Поэтому я попытался сделать это с помощью функции карты. Однако это породило ошибку.
Это код:
interface DataSource {
fun getItem() : Observable<List<RetroCrypto>>
}
//
object RemoteDataSource : DataSource {
private val myCompositeDisposable by lazy { CompositeDisposable() }
override fun getItem() : Observable<List<RetroCrypto>> {
val retrofit = RetroClient.getRetrofit()
val requestInterface = retrofit.create(GetData::class.java)
myCompositeDisposable.add(requestInterface.getData()
// Send the Observable’s notifications to the main UI thread
.observeOn(AndroidSchedulers.mainThread())
// Subscribe to the Observer away from the main UI thread
.subscribeOn(Schedulers.io())
.map { return it }
)
}
}
getRetrofit - это метод создания экземпляра модификации.
Я не знаю, почему приведенный выше код генерирует ошибку.
Ошибка
1. Return is not allowed here
2. Type mismatch. Required : Observable<List<RetroCrypto>> , Found : List<RetroCrypto>
Как я могу исправить код?