Recientemente he estado trabajando con Angular de 2/4. Un día me encontré con algo como esto:
public getCustomersOnArea(zip:string):Observable<Customer>{...}
El problema fue que tuvimos que hacer 2 llamadas para obtener los datos. Pero una llamada depende de los datos de la otra. ¿Cómo resolver esto? Una manera es encapsular las 2 llamadas en una tercera y regresar esta para que se subscriban a ella.
public getCustomersOn(zip:string):Observable<Customer>{ return new Observable<Customer>(suscriptor => { this.http.post(zip) .subscribe (res => {} this.http.post(res) .subscribe (r => {} Subscriber.Next(r); }, e => subscriber.error(e), () => subscriber.complete()); }); }
Y eso es todo. ¿Conoces otra manera? Dejalo en la sección de comentarios