I have the following service, which has a function that returns an Observable, since it takes data from another service, transforms it and then returns it (as an 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();
});
});
}
}
The problem is that this.companyService is undefined within the function. I read that it should possible if I use an => like that:
return Observable.create((observer) => {
this.companyService.getCompanies( (companies: Company[]) => {
let headerElements = let headerElements = getHeaderElements(companies);
observer.next(headerElements);
observer.complete();
});
});
But that code does not compile. It says Expected 0 arguments, but got 1. Can someone give me a hint how to solve the problem?