我试图遍历由对象组成的对象,其中每个对象的一个属性用于进行服务调用。
当我尝试执行此操作时,这可以正常工作,我可以控制注销从成功的服务调用返回的数据,但是当我尝试使用forEach()为父对象中的每个对象重复此过程时得到错误"无法读取属性' host'未定义"。
有人能解释我错过了什么吗?
这是我的代码现在的样子:
getItemParametersCallback(data){
...
// Parent Object made of Objects
// data is returned by a service call
this.parentObject = data.json();
// Iterate through the objects of the parentObject
const parentObjectItems = Object.keys(this.parentObject);
parentObjectItems.forEach( key => {
// I can add an if to limit this to being called once,
// like if(key === 'apple')... and it works fine
this.ItemService.getItem(this.getItemCallback.bind(this),
this.parentObject[key]);
});
}
// Console log out the data returned
getItemCallback(data){
console.log(data);
}
答案 0 :(得分:1)
从你的代码:
this.parentObject = data.json();
// Iterate through the objects of the parentObject
const parentObjectItems = Object.keys(this.parentObject);
data.json
/ .json
方法返回承诺。所以Object.keys(this.parentObject)
是错误的。
使用.then
或async/await
解开续集。