Javascript 角度:对象不是ApiService.saveData()上的函数
ApiService 正如您在这里看到的,Javascript 角度:对象不是ApiService.saveData()上的函数,javascript,angular,Javascript,Angular,ApiService 正如您在这里看到的,saveData()方法将通过给定的URL命中后端服务器,但是如果后端服务器抛出任何错误,我应该向用户显示该错误,因为我编写了handleError()方法并通过管道操作符调用,即catchError(this.handleError)此行抛出类型错误:对象不是函数 请给出任何建议 代码段: import { Observable, throwError} from 'rxjs'; import {catchError} from 'rxjs/opera
saveData()
方法将通过给定的URL命中后端服务器,但是如果后端服务器抛出任何错误,我应该向用户显示该错误,因为我编写了handleError()
方法并通过管道操作符调用,即catchError(this.handleError)
此行抛出类型错误:对象不是函数
请给出任何建议
代码段:
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');
}
}
为了使用catchError方法,您需要提供一个error函数 请看这里:
我相信Object是保留语法。尝试将其重命名为其他名称。如果它不起作用,请说明您是如何调用它的。谢谢,正如您所说,我添加了这一行.pipe(catchError(err=>this.handleError(err));但它仍然抛出相同的错误
.pipe(catchError(err=>this.handleError(err))
将被更正。您似乎在其他地方使用了一个模态。函数saveData()
是如何绑定到模式的?它是作为回调传递的吗?是的,我正在使用modal,但它不是一个没有模型的问题,它也抛出了相同的错误这是ApiService this.ApiService.saveData('urlConfig.saveAgent',this.newagentForm.value.).subscribe(data=>{console.log('data='+data);});在saveData()方法中,正如我描述的问题this line.pipe(catchError(this.handleError));这个错误这个组件级代码我在这里调用ApiService this.ApiService.saveData('urlConfig.saveAgent',this.newagentForm.value.).subscribe(data=>{console.log('data='+data);});你能把“Object”改名为“postBody”吗。我怀疑“Object”变量的使用,因为它是JavaScript保留的。公共存储数据(url、postBody)
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)
.pipe(catchError(err => this.yourErrorHandler(err)))