मेरे पास एक ऐसा फ़ंक्शन है जो ऑब्जेक्ट्स की सूची प्राप्त करता है और उसे एपीआई में पोस्ट करता है।कैंट स्ट्रिंग वैल्यू (कोणीय 2/टाइपस्क्रिप्ट) का निरीक्षण करने योग्य
फ़ंक्शन रिटर्न देता है क्योंकि कौन कभी कॉल करता है, यह एपीआई प्रतिक्रिया के आधार पर एक स्ट्रिंग वापस पाने की अपेक्षा करता है।
यदि प्रतिक्रिया अच्छी है तो मैं एक निश्चित स्ट्रिंग वापस करना चाहता हूं और यदि यह त्रुटि है तो मैं एक अलग स्ट्रिंग भेजना चाहता हूं।
public sendUpdate(updatedList: Cars[]): Observable<string> {
return this._myService.updateListNewOrder(updatedList)
.map(response => "The POST worked successfully")
.catch(error => Observable.of("An Error occurred"));
}
तो अब मैं इस समारोह फोन और मेरे component.ts में स्ट्रिंग प्राप्त करना चाहते हैं:
यह मेरा समारोह है कि एक स्ट्रिंग रिटर्न है
messageToDisplay: string;
public updateList() {
this._myService.sendUpdate(this.listToUpdate).subscribe(
res => this.messageToDisplay = res, // onNext
error => this.messageToDisplay = error // onError
);
}
लेकिन यह काम नहीं कर रहा ... मुझे त्रुटियां नहीं मिलती हैं। यह सिर्फ इतना है कि संदेश टोडडिस्प्ले अनिर्धारित रह रहा है।
क्या कोई समस्या देखता है?
धन्यवाद!
आप इसे की जरूरत है, इस updateListNewOrder (...) है:
public updateListNewOrder(newOrderedList: string[]): Observable<ServerResponse> {
let apiURL = "my/api/url";
return this.http.post(apiURL, JSON.stringify(newOrderedList), { headers: this.defaultHeaders() }
);
}
Observable.throw पर अपना Observable.of बदलने का प्रयास करें। Rxjs दस्तावेज़ों से: https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/throw.md – ajliptak