У меня есть два метода, которые оба возвращают IObservable
IObservable<Something[]> QueryLocal();
и
IObservable<Something[]> QueryWeb();
QueryLocal всегда успешен.QueryWeb подвержен как тайм-ауту, так и возможным веб-ошибкам.
Я хочу реализовать QueryLocalAndWeb (), который вызывает оба и объединяет их результаты.Пока у меня есть:
IObservable<Something[]> QueryLocalAndWeb()
{
var a = QueryLocal();
var b = QueryWeb();
var plan = a.And(b).Then((x, y) => x.Concat(y).ToArray());
return Observable.When(plan).Timeout(TimeSpan.FromSeconds(10), a);
}
Однако я не уверен, что он обрабатывает случай, когда QueryWeb выдает ошибку.В будущем у меня может быть QueryWeb2 (), который также необходимо учитывать.
Итак, как мне объединить результаты из нескольких IObservables, игнорируя те, которые выдают ошибки (или тайм-аут)?