Nesnelerin bir listesini alan ve bunu bir api'ye POST yapar bir işlev var.Cant olsun Dize değeri (açısal2/typescript) Gözden geçirilebilir
Bu işlev, Gözden Geçirme işlevini döndürür çünkü daha önce arayan kişi, api yanıtına bağlı olarak ondan bir dize almayı bekler.
Yanıt güzelse Belirli bir dizeye dönmek istiyorum ve eğer bir hata ise farklı bir dize göndermek istiyorum. Bu işlevi çağırmak ve benim component.ts dizeyi almak istiyorum Şimdi
public sendUpdate(updatedList: Cars[]): Observable<string> {
return this._myService.updateListNewOrder(updatedList)
.map(response => "The POST worked successfully")
.catch(error => Observable.of("An Error occurred"));
}
:
Bu
bir dize döndürür benim işlevidirmessageToDisplay: string;
public updateList() {
this._myService.sendUpdate(this.listToUpdate).subscribe(
res => this.messageToDisplay = res, // onNext
error => this.messageToDisplay = error // onError
);
}
ancak bu olmuyor ... hata alamıyorum. Sadece messageToDisplay undefined kalıyor.
Sorun gören var mı?
Teşekkürler! Eğer ihtiyacın varsa
, bu (...) updateListNewOrder geçerli:
public updateListNewOrder(newOrderedList: string[]): Observable<ServerResponse> {
let apiURL = "my/api/url";
return this.http.post(apiURL, JSON.stringify(newOrderedList), { headers: this.defaultHeaders() }
);
}
Gözlemlenebilir öğelerinizi Observable.throw olarak değiştirmeyi deneyin. Rxjs dokümanlar: https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/throw.md – ajliptak