تایپاسکریپت - چگونه در بلاک catch پاسخ بدنه را در فراخوانی HTTP در انگولار 2 بخوانیم


چگونه میتوانم بدنه پاسخ را در بلوک catch از درخواست HTTP در انگولار ۲ بخوانم. کد زیر چیزی است که تاکنون دارم:

requeueTask(data): Observable<Response>{
        this.setHeaders();
        let url = SharedService.requeueTaskApi;
        return this._http.put(url, data, {headers: this.headers})
                    .map((response: Response) => response)
                    //.do(data => console.log(JSON.stringify(data)))
                    .catch((error: any, response) => {
                        console.log(response);
                        if (error.status < 400 ||  error.status ===500) {
                            return Observable.throw(new Error(error.status));
                        }
                    })
    }

پاسخ شماره ۱

شما میتوانید خطا را مانند زیر بگیرید:

return this._http.put(url, data, {headers: this.headers})
                .map((response: Response) => response)
                .catch((error: Response) => {
                    console.log(response);
                    if (error.status < 400 ||  error.status ===500) {
                        return Observable.throw(error.json().error || 'Server error');
                    }
                })