我有一个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