我尝试迭代我的子对象并设置preloadingDone标志,当所有成功加载时。
this.HeaderService.getAll().subscribe(header => {
header.forEach((headerline, index) => {
this.SubService1.get(headerline.key).take(1).subscribe( sub1 => {
this.SubService2.get(headerline.key).take(1).subscribe( sub2 => {
if(index == header.length - 1){ // <-- not working !!! :-(
preLoadingDone = true;
}
})
})
})
});
我的if在这个例子中代码不起作用,因为异步问题。我该如何解决我的问题?
编辑: 这个servicecalls放在我的ngOnInit()中。问题是我在子服务URL中加载以在模板中显示图像。如果之前没有进行预加载,我在控制台中出错,因为图像指向null
答案 0 :(得分:0)
let __self = this;
__self.HeaderService.getAll().subscribe(header => {
header.forEach((headerline, index) => {
__self.SubService1.get(headerline.key).take(1).subscribe( sub1 => {
__self.SubService2.get(headerline.key).take(1).subscribe( sub2 => {
if(index == (header.length - 1)){ // <-- not working !!! :-(
__self.preLoadingDone = true;
}
})
})
})
});