输入'Observable <any [] | Observable <any [] >>'不能赋值为'Observable <any []>'

Akh*_*abu 0 rxjs angular-ngselect angular rxjs6 angular7

我正在使用ng-select v2angular 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));
  }
Run Code Online (Sandbox Code Playgroud)

3个错误说:

  • 类型'Observable>'不能分配给'Observable'类型.
  • 输入'Hospitals [] | Observable'不能分配给'Hospitals []'.
  • 类型'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;
}
Run Code Online (Sandbox Code Playgroud)

应该改变什么来解决这个问题?

Ted*_*rne 7

您面临的问题是线路在使用该功能时return of(items).pipe(delay(500));将您Observable<any[]>转变为线路.只需将当前的Observable管道延迟,您就可以开始使用了.Observable<Observable<any[]>of

return items.pipe(delay(500));
Run Code Online (Sandbox Code Playgroud)