Angular:对象不是ApiService.saveData()中的函数



ApiService

正如您在这里看到的,saveData()方法将通过给定的URL访问后端服务器,但如果后端服务器抛出任何错误,我应该向用户显示该错误,因为我编写了handleError()方法并通过管道运算符调用,即catchError(this.handleError)此行抛出TypeError: Object is not a function

请提出任何建议。

代码片段:

import { Observable, throwError} from 'rxjs';
import {catchError} from 'rxjs/operators';

@Injectable({
providedIn: 'root'
})
export class ApiService {
public  saveData(url,Object):Observable<any>{
return this.http.post(url,Object).pipe(catchError(this.handleError));
}
handleError(errorResponse:HttpErrorResponse){
console.log('handleerror')
return throwError(errorResponse.message || 'server error');
}

}

错误

正如你所看到的,这就是我在控制台中发现的错误:

core.js:6157 ERROR TypeError: Object is not a function
at ApiService.saveData (api.service.ts:18)
at new-channel.component.ts:66
at SafeSubscriber.schedulerFn [as _next] (core.js:25910)
at SafeSubscriber.__tryOrUnsub (Subscriber.js:183)
at SafeSubscriber.next (Subscriber.js:122)
at Subscriber._next (Subscriber.js:72)
at Subscriber.next (Subscriber.js:49)
at EventEmitter_.next (Subject.js:39)
at EventEmitter_.emit (core.js:25879)
at ConfirmModalComponent.Passback (confirm-modal.component.ts:30)

您需要提供一个错误函数才能使用catchError方法。

请参阅此处:

在此处输入链接描述

.pipe(catchError(err => this.yourErrorHandler(err)))

我认为Object是保留语法。试着用其他方法重命名它。如果它不起作用,那么请展示你是如何称呼它的。

最新更新