我有一個Observable,我正在使用它將一個承諾轉換爲訂閱。這導致了我需要迭代的集合來調用每個元素上的HTTP服務。我使用forkJoin等待所有這些調用完成,以便我可以做其他事情,但不幸的是,我的訂閱沒有被調用。你看到我在這裏失蹤了嗎?可觀察訂閱沒有被調用
Observable.fromPromise(this.users.getElements()).subscribe(results => {
Observable.forkJoin(
results.map(
aUser => this.HttpService.submitUser(aUser).subscribe(
results => {
this.progress += 1;
},
err => {
this.progress += 1;
this.handleError(<any>err);
})
).subscribe(
//it never gets to either of these calls after all service calls complete
data => {
debugger;
console.log(data);
this.reset();
},
err => {
debugger;
console.log(err);
this.reset();
}
));
});
好的,我明白你的意思了,但如果其中一個觀察對象有例外,那麼forkJoin會在其他人完成之前馬上拿起它。我認爲forkJoin應該等待所有人完成,但是從源頭上看,它會標記爲「完成」而不是下一個。在我的例子中,我希望每個observable能夠優雅地處理錯誤並繼續。有沒有辦法做到這一點? – occasl
@occasl查看我的更新。 – martin