Http наблюдаемый ответ разобрать в массив - PullRequest
1 голос
/ 19 марта 2019

Только началось с angular (версия 7). Я пытаюсь получить ответ от json-placeholder, массива задач. Это должно вернуть массив, но когда я console.log (typeof rsp), он показывает объект.

Наблюдаемое:

url: string = 'https://jsonplaceholder.typicode.com/todos';

getHomeTodos() {
    return this.http.get(this.url);
}

Наблюдатель в моем компоненте:

ngOnInit() {
this.todosService.getHomeTodos()
    .subscribe((rsp) => {
      this.homeTodos = rsp;
    });
}

Есть идеи, почему типом rsp является 'Object', но на json-заполнителе показано, что он возвращает массив? Спасибо.

1 Ответ

1 голос
/ 19 марта 2019

Так, как я могу использовать метод, подобный соединению на возвращаемом объекте?

Я думаю, я вижу, что ваш вопрос.Необходимо указать тип возвращаемого значения в get, а также getHomeTodos, чтобы добавить безопасность типов, и среда IDE может предложить методы / члены для таких типов, как соединение в массиве.

export interface IToDo { /* members here */ }
url: string = 'https://jsonplaceholder.typicode.com/todos';
getHomeTodos():Observable<IToDo[]> {
    return this.http.get<IToDo[]>(this.url);
}
homeTodos: IToDo[];
ngOnInit() {
  this.todosService.getHomeTodos()
    .subscribe((rsp) => {
      this.homeTodos = rsp;
    });
}

Этот тип безопасности добавлен, и теперь вы можете использовать splice или другие члены-прототип Array.

...