我理解Observable数据服务的核心概念,但是当我需要更强大的服务时会遇到麻烦。Angular 2 Observable http服务错误处理
对于用户查询,我必须创建一个http调用链,以便首先查询用户对象,然后在抓取用户对象后查询其他数据。由于这些额外的调用取决于抓取的用户对象。用户可以通过接收整个用户对象的任何额外数据来获取这些数据。
我目前使用userSource.mergeMap(user => extraDataNeeded(user))
返回组合的Observables。 其中extraDataNeeded
返回Observable.forkJoin(...OBSERVABLES)
OBSERVABLES
是一个http调用数组,它向用户对象添加额外的数据。
我的问题是,当这些额外的http调用之一失败,链中的其余部分被取消。我希望从userSource.mergeMap(user => extraDataNeeded(user))
创建的最高可观察值可以使所有的http调用无论如何失败。我希望userSource.mergeMap(user => extraDataNeeded(user))
的用户能够接收到用户对象的任何可以抓取的数据,以及任何内部http调用失败的错误。如果原始userSource
失败,则完全失败,并且没有成功。