【发布时间】:2017-06-08 09:35:18
【问题描述】:
我有 2 个(或更多)从服务返回的 Observable,每个只返回一个值(想想Observable.just())。它们中的每一个都是不同的类型(我用 TypeScript 编写,所以类型很重要)。
有没有办法知道所有 Observable 何时解决(使用 Promise 术语)成功或失败,我需要能够单独处理失败并继续。
人为的例子:
const obs1 = someService.getThisThing(); //Observable<Type1>
const obs2 = someService.getAnotherThing(); //Observable<Type2>
const someObj = {};
obs1.subscribe(v1 => someObj.v1 = v1);
obs2.subscribe(v2 => someObj.v2 = v2);
// call someFunc(someObj), only when both above observables resolved to a value
someFunc(someObj);
我曾尝试使用 merge,但随后我失去了类型安全性,因为值可能以任何顺序出现,我必须检查它们在 .subscribe 中的类型以确定哪个是哪个
我已经按照here 的描述尝试了combine 和combineLatest - 但是它们同时解决了,如果 1 失败 - 一切都失败了
【问题讨论】:
标签: javascript typescript rxjs rxjs5