Wie man eine Methode aufruft, nachdem alle anderen Methoden verwirklicht worden sind. Alle Methoden haben Observable.Kettenmethoden auf rxjava
Observable.just(""
)
.subscribe(new Subscriber<String>() {
@Override
public void onCompleted() {
Log.d(TAG, "onCompleted: loading config");
loadConfiguration();
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(String s) {
Log.d(TAG, "onNext: loading data");
initOperatorData();
initCompanyData();
initVehicleData();
initToolsData();
}
});
private void initCompanyData() {
Subscription subscription = db.loadDataMaster()
.map(new Func1<RealmResults<DataMaster>, List<String>>() {
@Override
public List<String> call(RealmResults<DataMaster> dataMasters) {
List<String> companies = getCompanyNames(dataMasters);
return companies;
}
})
.subscribe(new Action1<List<String>>() {
@Override
public void call(List<String> companyNames) {
setCompanyNames(companyNames);
}
});}
Ich möchte auf die Observablen auf diesen Methoden nennen „OnNext“, sobald sie alle Ende, ich derjenige in onComplete nennen. aber das passiert nicht, weil sie alle asynchron sind. onComplete passiert vor initToolsData.
Gibt es eine Möglichkeit, Aufrufe an Methoden asynchron zu verketten?
Danke. Ich habe die Methodenimplementierung hinzugefügt. Ich habe bereits eine Subskription in jeder Methode, wo ich einige Daten einstelle. Was könnte die Lösung dafür sein, da Merge Observables benötigt – Kordova