<Closed> Angular 6错误TypeError:this.service ....不是一个函数

时间:2019-06-28 07:40:46

标签: angular

我正在运行一个在服务类中调用方法的函数。但是我收到此错误: 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>();
   }
}

感谢您的帮助,谢谢!

3 个答案:

答案 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 => { });
  }