Я хочу передать результат из класса B в класс A как наблюдаемый
- Класс Api выполняет сетевой вызов и передает myResult (через Single.fromCallable ()) в класс B
- Класс B получает myResult и изменяет его
Класс B должен передать измененный результат (или любую ошибку) в класс A, где был сделан первоначальный вызов (класс A вызывает метод ClassB, чтобы сделатьapi call)
, как мне выполнить шаг 3 реактивным / RxJava способом?
не уверен, что Map - это то, что я ищу, но любой рабочий пример поможетмассивно.Также разделение между классом A, классом B и классом Api должно иметь
Class A {
CalssB.MethodB()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeBy(onError = {//handle error
}, onSuccess = {
// handle success i.e myResult = it
})
}
Class B {
fun methodB(): Single<MyResult> {
var myResult = MyResult()
api.getMyResult()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeBy(
onSuccess = {
//3 - here is I need help , modify result and pass it as an observable to class A where (CalssB.MethodB() is called)
}
, onError = {
//3 - here is I need help , pass Error to Class A where (CalssB.MethodB() is called)
}
)
}
Api {
public Single<MyResult> getMyResult() {
return Single.fromCallable(() -> doGetMyResult()); //network call
}
}
}