我有这段代码,它从MongoDB获取一些数据并将其保存在组件的数组中。
this.laugService.getAllLaug().subscribe(laug => {
this.laugs = laug; //save posts in array
});
this.laugs.array.forEach(element => {
this.modelLaugs.push(new Laug(element.navn, element.beskrivelse))
});
之后,我想将这些数据保存到一个不同的数组中,在这个数组中创建模型“laug”的新实例。为此,我使用了foreach循环,但是运行此代码时出错:
ERROR Error: Uncaught (in promise): TypeError: Cannot read property
'forEach' of undefined
TypeError: Cannot read property 'forEach' of undefined
我确信我从数据库接收数据,但是我不确定为什么我的数组在这一点上没有定义。
最佳答案
您的订阅是异步的。尝试迭代时可能未设置laugs属性。只需将foreach代码放入subscribe回调:
this.laugService.getAllLaug().subscribe(laug => {
this.laugs = laug; //save posts in array
if (this.laugs && this.laugs.array) {
this.laugs.array.forEach(element => {
this.modelLaugs.push(new Laug(element.navn, element.beskrivelse))
});
}
});
关于arrays - 迭代从Observable的订阅函数创建的数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44256713/