Введите 'Observable ‹any [] | Observable ‹any [] ›› 'не может быть назначен типу' Observable‹ any [] ›'

Я использую ng-select v2 и angular 7.

Я получаю сообщение об ошибке в приведенном ниже операторе возврата

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> нельзя присвоить типу Observable.
  • Введите 'Больницы [] | Наблюдаемый »нельзя присвоить типу« Больницы [] ».
  • Тип «Наблюдаемый» нельзя присвоить типу «Больницы []».

вот моя функция 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;
}

Что нужно изменить, чтобы это исправить?


person Akhil Babu    schedule 20.11.2018    source источник
comment
замените return of(items).pipe(delay(500)); на return items.pipe(delay(500)): элементы уже наблюдаются.   -  person    schedule 20.11.2018


Ответы (1)


Проблема, с которой вы столкнулись, связана со строкой return of(items).pipe(delay(500));. Она превращает ваш Observable<any[]> в Observable<Observable<any[]> при использовании функции of. Просто подключите текущий Observable к задержке, и все будет в порядке.

return items.pipe(delay(500));
person Teddy Sterne    schedule 20.11.2018