我需要在这个combineLatest中处理每个函数的错误场景。我将添加以下代码
const combined = combineLatest(
this.myservice1.fn1(param),
this.myservice2.fn2(),
this.myservice3.fn3());
const subscribe = combined.subscribe(
([fn1,fn2, fn3]) => {
// operations i need to do
},
// how to handle error for fn1, fn2, fn3 separately
(error) => {
}
);
任何帮助将不胜感激!
答案 0 :(得分:3)
您可以在使用最新combineLatest
之前捕获每个源Observable的错误,如果您想稍后处理它们或将它们转换为其他错误,最终会重新抛出它:
combineLatest(
this.myservice1.fn1(param)
.pipe(
catchError(err => {
if (err.whatever === 42) {
// ... whatever
}
throw err;
}),
),
this.myservice2.fn2()
.pipe(
catchError(err => /* ... */),
),
...
)
答案 1 :(得分:0)
我正在使用RxJava,我想使用操作符CombineLatest组合12种不同的可观察对象。
我看到了一个函数原型,该原型带有一个可观察对象列表和一个实现。但是我不确定该怎么做,我在实现call方法时遇到了麻烦。 请检查我的代码并做必要的事情。
Stream>获取城市=> _citiesController.stream;
Stream get city => _cityController.stream;
Stream get agentcity => _agentcityController.stream;
Stream get userpackages => _packagesController.stream;
流获取电子邮件=> _emailController.stream.transform(validateEmail);
流获取名字=> _firstNameController.stream.transform(validateFirstName);
流获取lastName => _lastNameController.stream.transform(validateLastName);
流get mobileNumber => _mobileNumberController.stream.transform(validateMobile);
Stream get dob => _dobController.stream.transform(validatedob);
流获取约会日期=> _appointmentdateController.stream.transform(validateappointmentDate);
流获取密码=> _pincodeController.stream.transform(validatePincode);
流获取性别=> _genderController.stream;
流获取地址=> _addressController.stream.transform(validateAddress);
流获取代理名=> _agentnameController.stream.transform(validateAgentName);
流获取有效的提交=> Observable.combineLatest9(
email,
firstName,
mobileNumber,
pincode,
dob,
address,
agentname,
_genderController.stream,
_cityController.stream,
_agentcityController.stream,
_packagesController.stream,
_appointmentdateController.stream,
(e, f, m, p, d, a, an, g, c, ac, pc, ad) => true,
);
请让我知道如何在我的代码中使用CombineLatest。