Ich habe zwei verschiedene API-Anfragen erstellt mit Retrofit 2.0 alsWie erstellt man zwei oder zwei sequentielle Netzwerkanforderungen mit RxJava2?
Observable<T> getOrganisationList()
Observable<T> getStaffList()
ich CompositeDisposable
Container verwende, die auf mehrere andere Disposables halten kann. Ich möchte die beiden oben genannten beobachtbaren Anfragen nacheinander ausgeführt werden (getStaffList()
nach getOrganisationList()
) nur dann, wenn:
getOrganisationList()
nicht Anforderungszeit nicht wirftgetOrganisationList()
nicht wirft keine Netzwerk-Ausnahme bei keinem Netzwerk verfügbargetOrganisationList()
nicht zeigt durch Senden eines Ergebniscode in json ObjektgetOrganisationList()
nichtJSONException
nicht wirft beim Parsen des Ergebnisses nicht Session-TimeoutgetOrganisationList()
nicht zurückkehrt null oder leer Ergebnis
Bitte beantworten Sie die Frage mit Hilfe des Codes.
Sie sollten nur mit 'Observable.concat()' in Ordnung sein. In allen Fällen, die Sie beschrieben haben, wird eine Ausnahme ausgelöst, mit Ausnahme des leeren Ergebnisses. Das heißt, "onError" wird im Subscriber aufgerufen und das zweite beobachtbare 'getStaffList()' in concat wird nicht realisiert. Sie können leere Ergebnisse beispielsweise im Operator 'flatmap()' verarbeiten und auch in diesem Fall eine Ausnahme auslösen. – skywall
Was @skywall sagte, mit dem Zusatz von '.switchIfEmpty (Observable.error (...))' –
@TassosBassoukos Ich bin mir nicht sicher, dass Sie Recht haben. 'switchIfEmpty()' wird aufgerufen, wenn kein Element ausgegeben wird. In diesem Fall wird eine leere Liste ausgegeben. – skywall