2017-06-29 1 views
0

Ich werde Daten aus dem Array der Reihe nach an den Server senden. Jeder nächste Versand sollte nach der vollständigen vorherigen Anfrage aufgerufen werden. Wie kann ich es mit RxJS implementieren?Wie Schritt für Schritt Async-Prozess mit RxJS implementieren?

P.S. Es ist eckig 4 ​​Anwendung.

+1

verwenden 'flatMap()' – CozyAzure

+1

Könnten Sie Code hinzufügen? Was haben Sie versucht, welcher Fehler aufgetreten ist? –

+0

Dies ist bereits gut hier beschrieben: https://stackoverflow.com/documentation/rxjs/8247/common-recipes/28035/sending-multiple-sequential-http-requests#t=201706291652523651924 – martin

Antwort

0

Wenn Sie Ihre Observables verketten möchten, verwenden Sie .flatMap(). Es ist die gleiche wie .then() in Promise

Angenommen, Sie 3 HTTP-Aufruf-Funktionen in Ihrem Dienst haben, genannt firstRequest(), secondRequest() und thirdRequest(). Sie können sie so verketten

myService.firstRequest() 
    .flatMap(result1 => { 
     //do something with result1 from firstRequest 
     return myService.secondRequest(result1) 
      .flatMap(result2 => { 
       //do something with result2 from secondRequest 
       return myService.thirdRequest(result2); 
      }); 
    }) 
    .subscribe(result3 => { 
     //finally do something with your result3 that is from thirdRequest 
    });