2016-04-25 18 views
7

Ho 2 chiamate API: la seconda chiamata utilizza qualcosa restituita dalla prima chiamata. Con le promesse questo è stato facile:Concatenamento di osservabili con RxJS in Angular2

myService.findAll() 

    // First call 
    .then(response => { 
     return myService.findSpecific(response.something); 
    }) 

    .then(response => { 
     // result from second API call 
    }); 

Come posso fare questo utilizzando osservabili?

+0

Una buona cosa da ricordare è che in RXJS promesse possono essere trattati come osservabili che saranno al massimo emettono un singolo elemento (i dati risolti). –

risposta

8

è possibile sfruttare l'operatore flatMap in questo modo:

myService.findAll() 
    // First call 
    .flatMap(response => { 
    return myService.findSpecific(response.something); 
    }).subscribe(response => { 
    // result from second API call 
    }); 
+0

Grazie, questa risposta mi ha aiutato! +1 – Sander

+0

@Sander Contrassegnalo correttamente se lo ha fatto :) –