首页 > 解决方案 > Angular:函数内未定义的成员变量

问题描述

我有以下服务,它有一个返回 Observable 的函数,因为它从另一个服务获取数据,转换它然后返回它(作为 Observable)。

@Injectable({
  providedIn: 'root'
})
export class ReportColumnHeaderService {

  constructor(private companyService: CompanyService) {}

  public getColumnHeaderElements(variableDimensions: string[]): Observable<HeaderElement[]> {

    return Observable.create(function(observer) {

      this.companyService.getCompanies( (companies: Company[]) => {
        let headerElements = getHeaderElements(companies);
        observer.next(headerElements);
        observer.complete();
      });

    });

  }
}

问题是this.companyServicefunction. 我读到如果我使用这样的东西应该是可能的=>

return Observable.create((observer)  => {

   this.companyService.getCompanies( (companies: Company[]) => {
   let headerElements = let headerElements = getHeaderElements(companies);
   observer.next(headerElements);
   observer.complete();
  });

});

但是该代码无法编译。它说Expected 0 arguments, but got 1.有人可以给我一个提示如何解决这个问题吗?

标签: angulartypescriptobservable

解决方案


假设getCompanies返回一个可观察的,你就错过subscribe了这个功能。正确的调用如下:

this.companyService.getCompanies().subscribe( (companies: Company[]) => {

推荐阅读