Ich habe eine Komponente, die zuerst einen Dienst, der etwas POST aufrufen muss. Dann möchte ich in derselben Komponente warten, bis der POST fertig ist, um einen anderen Dienst anzurufen, der Daten abholt.Angular2 - Wie verkettet man asynchrone Serviceaufrufe (http Anfragen) in einer Komponente?
Wie kann ich den GET-Anruf warten, bis der POST-Anruf beendet wird?
In neuen 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 neuen 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));
}
Dank!
Ich habe ein Beispiel für einen angeketteten Anruf hier: http: //www.syntaxsuccess.com/viewarticle/angular-2.0-and-http Meine Probe ist ein erhalten, aber Sie können es zu einem Beitrag ändern – TGH