繁体   English   中英

Typescript-从ForEach()中反复调用函数导致未定义

[英]Typescript - Calling function repeatedly from within ForEach() leads to undefined

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

当我尝试仅执行一次此操作并且可以注销从成功的服务调用返回的数据时,此方法就很好了,但是当我尝试使用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);
}

从您的代码:

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解开延续。

更多

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM