我正在创建一个 Angular 应用程序,其中有一个空数组:
users: any = [];
然后我在ngOnInit
中进行服务调用,将数据存储到users
数组中,如下所示:
ngOnInit() {
//Getting the data from json
this.httpClient.get('https://api.myjson.com/bins/n5p2m').subscribe((response: any) => {
console.log("response", response.data);
response.data.forEach(element => {
//Pusing the data to users array
this.users.push(element);
});
})
//Trying to get the complete array after push of the element from the service response data
console.log("users array", this.users);
//But it shows empty array
}
但是由于服务调用会有延迟,所以我无法在
console.log("users array", this.users);
中获取数据。请问如何将数据推入
this.users
中,并且在服务外部调用时应该有填充的数据,而不是像现在一样为空。此外,关于此问题我也创建了一个可工作的stackblitz,请参考https://stackblitz.com/edit/angular-q3yphw。
请查看控制台中的当前结果。
console.log("users array", this.users);
中的当前结果是空数组[]。因此,我期望在服务外部和
ngOnInit
内部的console.log("users array", this.users);
中得到以下结果。[
{"id":1,"value":"User One"},
{"id":2,"value":"User Two"},
{"id":3,"value":"User Three"}
]
我是angular的新手,请帮助我实现预期的结果。
this.users
中填充的数据。 - Maniraj MuruganRxJS操作符
的stackblitz。我认为这是处理问题的最佳解决方案。 - Maniraj Murugan