Каков тип данных Наблюдаемого в Angular? - PullRequest
0 голосов
/ 28 октября 2019

У меня проблемы с Observables с точки зрения использования его в коде. Если у меня есть метод, подобный

getTodos():Observable<Todo[]> {
    return this.http.get<Todo[]>(`${this.todosUrl}${this.todosLimit}`);
  }

, как это возвращается в формате Observable? Массив?

Я новичок в angular - заранее извините.

Ответы [ 2 ]

0 голосов
/ 28 октября 2019

Из кода:

getTodos():Observable<Todo[]> {
  return this.http.get<Todo[]>(`${this.todosUrl}${this.todosLimit}`);
}
  1. getTodos() - это название метода.
  2. Observable<Todo[]> -тип возврата.
  3. this.http.get - возвращает наблюдаемый. Но этот метод также принимает тип T, как объяснено здесь в документах (Перегрузка 8). Поэтому он возвращает Observable<T> в зависимости от типа T. Поскольку вы вызываете get с типом Todo[], метод get вернет Observable<Todo[]>.
0 голосов
/ 28 октября 2019

Для этого метода

getTodos():Observable<Todo[]> {
  return this.http.get<Todo[]>(`${this.todosUrl}${this.todosLimit}`);
}

Возвращает Наблюдаемый , Todo тип массива из запроса HTTPClient .

универсальный тип Observable<T> принимает аргумент типа, и в этом случае массив Todo объектов Todo[].

Короче говоря, вызов метода getTodos() будетВозврат Наблюдаемый. Чтобы вернуть значения из наблюдаемой, вам необходимо подписаться на нее.

getTodos().subscribe(res => {
  // console.log(res)
  // do the rest here
})

И после возврата наблюдаемой величины возвращаемые значения res будут иметь тип Todo[].

...