类型'Observable <any [] | =“” observable <any [] =“” >>'不可分配给类型'Observable <any []>'

时间:2018-11-20 12:05:09

标签: angular rxjs rxjs6 angular7 angular-ngselect

我正在使用 ng-select v2 angular 7

下面的return语句出现错误

getHospital(term: string = null): Observable<Hospitals[]> {
    let items = this.getHospitals1();
    if (term) {
      items = items.pipe(
        filter((x,i) => x[i].name.toLocaleLowerCase().indexOf(term.toLocaleLowerCase()) > -1)
      )
    }
    return of(items).pipe(delay(500));
  }

3个错误,表明:

  
      
  • 类型“可观察>”不能分配给类型“可观察”。
  •   
  • 键入“医院[]” | “可观察”不能分配给“医院[]”类型。
  •   
  • 'Observable'类型不能分配给'Hospitals []'类型。
  •   

这是我的 getHospitals1 函数

getHospitals1() : Observable<Hospitals[]>{
    return this.http.get<Hospitals[]>('https://my-json-server.typicode.com/monsterbrain/FakeJsonServer/hospitals')
   }

export interface Hospitals {
  id: string;
  name: string;
  address: string;
}

应对此进行哪些更改以解决此问题?

1 个答案:

答案 0 :(得分:7)

您面临的问题是return of(items).pipe(delay(500));行,它在使用Observable<any[]>函数时将Observable<Observable<any[]>变成of。只需将当前Observable传递给延迟,就可以了。

return items.pipe(delay(500));