我正在运行一个在服务类中调用方法的函数。但是我收到此错误:
ERROR TypeError: this.service.execute is not a function
。
我读了Angular 6: ERROR TypeError: "... is not a function" - but it is,但是我看到的指定类型没有任何问题,我想知道是否还有其他问题。
以下是我的代码的摘录: exec.component.ts
export class ExecComponent {
name: string = "";
age: string;
date: string;
constructor(protected service: ExecutorService){}
executeTask(): void {
this.service.execute(this.name, this.date, this.age).subscribe((result: Result) => {
if (result.isSuccess())
console.log("Success!");
else {
console.log("Error");
}
});
}
exec.service.ts
export class ExecutorService {
execute(name: string, date: string, age: string): Observable<Result>{
return new Observable<Result>();
}
}
感谢您的帮助,谢谢!
答案 0 :(得分:0)
尝试像这样更改您的代码,我认为您的代码中有一些错字
executeTask(): void {
this.service.execute(this.name, this.date, this.age).subscribe((result: Result) => {
if (result.isSuccess()){
console.log("Success!");
}
else {
console.log("Error");
});
答案 1 :(得分:0)
我不太确定为什么要这么做,但是经过多次尝试,我意识到我的服务代码static ngInjectableDef = undefined;
中的这一行缺失引起了错误。由于专有原因,我无法发布服务代码,但希望这可以解决某人的问题。
答案 2 :(得分:0)
这原来是绑定问题,我正在将该函数传递给事件发射器,而“ this”绑定到了子组件。
只是更改了我的功能,因为箭头功能修复了所有问题。
之前:
this.someService.getReplyFile(file)
.pipe(untilDestroyed(this))
.subscribe(a => { });
}
之后:
downloadReplyFile = (file: UploadedDocument) => {
this.someService.getReplyFile(file)
.pipe(untilDestroyed(this)))
.subscribe(a => { });
}