我订阅了一个FirebaseObjectObservable,以从我的firebase数据库中获取对象属性的值。此属性可以包含多个值,因此我将值存储在本地数组变量中。
但是我无法使用forEach迭代这个本地数组变量。所以我在console.log这个数组变量。这个变量似乎有json格式也许这就是为什么我无法迭代。请帮我找一种迭代这个变量的方法。
*代码和控制台图片:
*编辑*
我将subscribe方法中的代码转移到迭代。
getAttachments() {
this.assignment.subscribe(asnDetails => {
if (asnDetails.fileKey) {
this.fileKeys.push(asnDetails.fileKey);
this.fileKeys[0].forEach(asnFileKey => { // <---- shifted this forEach loop inside subscribe
this.asnFiles = this._getAsnService.getAssignmentFiles(asnFileKey);
this.asnFiles.subscribe(file => {
this.fileNames.push(file.name);
});
});
}
});
}
答案 0 :(得分:2)
this.fileKeys
值仅在subscribe
处理程序中可用。这是异步编程的基础。您的控制台日志紧接在订阅之后,并在订阅发生更改之前执行。
答案 1 :(得分:1)
屏幕截图中有一个嵌套数组。第一个长度为1,嵌套长度为长度为2。因此,您可以访问array[0].forEach(item => console.log(item))
答案 2 :(得分:0)
可悲的是,我无法发表评论。这不是角度或火力问题
它是一个普通的数组,基于你的控制台截图
你试过迭代this.fileKeys
吗?
如果有人可以将此作为评论发布,我会将其删除作为答案。