すべてが正常にロードされたときに、私の子オブジェクトを反復処理し、preloadingDoneフラグを設定しようとします。子プロセスを反復して、angular2で準備ができているかどうかを確認します。
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;
}
})
})
})
});
この例のmyは、非同期の問題のために動作しません。どうすれば問題を解決できますか?
編集: このサービスコールは、ngOnInit()に配置されます。問題は、サブサービスのURLにロードしてテンプレートに画像を表示することです。プリロードが前に行われていない場合は、イメージがnullを指しているので、コンソールにエラーが発生しました。
3つのコールバック(次、エラー、完了)があります。あなたは完全なコールバックであなたのコードを書くことができ、私はそれが動作するはずだと思う。 – micronyks
あなたの答えはありがたいですが、すべてがロードされたかどうかを確認するためにsubservice2の最後の処理の完了を知る必要があります; –
イメージURLの代わりにテンプレートで '?'を使用するだけではなく.. –