HTTP可观察到的响应解析为数组

时间:2019-03-19 19:03:22

标签: angular rxjs observable

只是从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-placeholder上它显示它返回一个数组?谢谢。

1 个答案:

答案 0 :(得分:1)

  

那么我如何在返回的对象上使用诸如splice之类的方法?

我想我明白你的问题是什么。您需要在getgetHomeTodos中指定返回类型,以便添加类型安全性,并且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原型成员。