迭代孩子,并在angular2可观察时检查

时间:2017-01-24 13:54:51

标签: angular typescript

我尝试迭代我的子对象并设置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

1 个答案:

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