gpt4 book ai didi

javascript - Typescript - 从 ForEach() 内重复调用函数会导致未定义

转载 作者:行者123 更新时间:2023-12-03 03:57:12 27 4
gpt4 key购买 nike

我正在尝试迭代一个由对象组成的对象,其中每个对象的一个​​属性用于进行服务调用。

当我尝试只执行一次此操作并且我可以通过控制台注销从成功的服务调用返回的数据时,效果很好,但是当我尝试使用 forEach() 对父对象中的每个对象重复此过程时,我收到错误“无法读取未定义的属性‘主机’”。

有人可以解释一下我缺少什么吗?

这是我的代码现在的示例:

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);
}

最佳答案

从您的代码中:

this.parentObject = data.json();

// Iterate through the objects of the parentObject
const parentObjectItems = Object.keys(this.parentObject);

data.json/.json 方法返回一个 promise 。所以 Object.keys(this.parentObject) 是错误的。

解决方案

使用.thenasync/await来解开延续。

更多

关于javascript - Typescript - 从 ForEach() 内重复调用函数会导致未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44892358/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com