Ho un componente che deve prima chiamare un servizio che POST qualcosa. Quindi nello stesso componente voglio attendere fino al termine del POST, per chiamare un altro servizio che recupera i dati.Angular2 - Come concatenare chiamate di servizio asincrona (richieste http) in un componente?
Come posso fare in modo che la chiamata GET attenda che la chiamata POST termini?
in New-version.component.ts:
private createNewVersion(value) {
...
// create new version, then call on all available versions
// POST call
this._newVersionService.createNewVersion(vnr);
// GET call
this._versionService.getAvailableVersions();
...
}
in New-version.service.ts:
export class NewVersionService {
response$: Subject<any>;
constructor(private _http: Http) {
this.response$ = new BehaviorSubject<any>(null);
}
public createNewVersion(versionNr) {
this._http.post('http://localhost:8080/services/' + versionNr, null, {
method: 'POST',
})
.subscribe(response => {
this.response$.next(response.status);
},
error => console.error(error));
}
Grazie!
Ho un esempio di chiamata concatenata qui: http: //www.syntaxsuccess.com/viewarticle/angular-2.0-and-http Il mio esempio è un get, ma è possibile modificarlo in un post – TGH