employeeView()方法将获取员工数据列表作为对象,我想将每个对象数据存储到数组中
constructor(private userService: employeeviewservices) {
this.userService.employeeView().subscribe(data => this.EmployeeData=data),
this.EmployeeData.forEach(i=>{
this.resultArray.push(
{
"id":i.id,
"name":i.name,
});
});
答案 0 :(得分:2)
使用以下代码:
constructor(private userService: employeeviewservices) {
let newData: any= [];
this.userService.employeeView().subscribe((data: any[]) => {
newData = data.map(d: any => {
return {
"id":d.id,
"name":d.name,
};
});
this.resultArray = newData;
});
}
答案 1 :(得分:0)
在订阅中进行。
constructor(private userService: employeeviewservices) {
this.userService.employeeView().subscribe(data => {
this.EmployeeData = data;
this.EmployeeData.forEach(i => {
this.resultArray.push({
"id": i.id,
"name": i.name,
});
}),
});
}
答案 2 :(得分:0)
以下两个答案都是一样的,是对的。解决问题的正确方法是在suscribe中推送数组。
尽管如此,我觉得有必要解释原因。
事件“userService.employeeView()”的嫌疑是asyncronic。这意味着它将等待请求结束以运行suscription方法(填充您的数组)。
在您的代码中,您说“每当employeeView结束时,执行此操作(填充我的数组)”,然后“请告诉我,这个数组中有什么?”它将是没有的。因为数组尚未填充。