Ich kämpfe immer noch mit den Observablen, weil ich eine komplexe REST API Abfragefunktion mit komplexer Logik und mehreren Anfragen und Antworten kodiere.Wie man auf die Abschlusskette wartet?
ich bereits viele Funktionen mit Abonnement wie diese geschrieben,
function1(){
thisReturnsAnObservable()
.subscribe();
}
function2(){
thisReturnsAnObservable()
.subscribe();
}
function3(){
thisReturnsAnObservable()
.subscribe();
}
Und in der Funktion mit mehreren Abfragen, ich Code wie diese
complexFunction(){
function1();
function2();
function3();
if (aVariableChangedBy123 == true){
doSomething();
}
}
Ich glaube, ich bin verwirrt, die Experiment beweist mich falsch, weil die Variable aVariableChangedBy123 immer ausgewertet wird, bevor Funktion1,2,3 endet, also was ich will ist, da die aVariableChangedBy123 nur sicher sein wird, nachdem Funktion1,2,3 nacheinander nacheinander abgeschlossen, wie soll ich code eine Funktion, um diese Funktion zu verketten mit Abonnenten, um sie sequenziell laufen zu lassen?
Ich wusste, es gibt Möglichkeiten wie das Umschreiben aller Funktion 1,2,3, aber gibt es eine Möglichkeit, diese Funktionen nicht zu schreiben, weil ich sie in anderen Situationen wiederverwenden kann?
Ich habe versucht, die flatMap()
Funktion zu verwenden, die ich kann sie wie then()
wusste Kette, aber der Code immer Fehler zur Laufzeit geben, wie Cannot read property 'flatMap' of undefined
, da alle funtion1,2,3 Leere Funktionen sind.
Ich habe einen Weg, aber ich weiß nicht, ob es richtig ist.
wie
Observable.forkJoin(Observable.of(function1),Observable.of(function2)).subscribe() ;
Ist dieses lebensfähig? Ich dachte nie, ich kann es statisch verwenden ...
prüfen 'flatMap' (jetzt' mergeMap' mit rxjs5) und 'forkJoin' – echonax
sie scheinen nicht für mich arbeiten, manchmal sind sie mir nur [] ungültig geben, ist zu Parameter des Typs SubscribableOrPromise nicht belegbare Fehler –