Я новичок в RX и занимаюсь обработкой ошибок и использованием Retry; У меня есть следующее (да, я знаю, что это не «настоящий» модульный тест, но он дает мне место для возни!!), и мне было интересно, как мне сохранить повторную попытку, но иметь возможность регистрировать любое исключение?
[Test]
public void Test()
{
var scheduler = new TestScheduler();
var source = scheduler.CreateHotObservable(
new Recorded<Notification<long>>(10000000, Notification.CreateOnNext(0L)),
new Recorded<Notification<long>>(20000000, Notification.CreateOnNext(1L)),
new Recorded<Notification<long>>(30000000, Notification.CreateOnNext(2L)),
new Recorded<Notification<long>>(30000001, Notification.CreateOnError<long>(new Exception("Fail"))),
new Recorded<Notification<long>>(40000000, Notification.CreateOnNext(3L)),
new Recorded<Notification<long>>(40000000, Notification.CreateOnCompleted<long>())
);
source.Retry().Subscribe(
l => Console.WriteLine($"OnNext {l}"),
exception => Console.WriteLine(exception.ToString()), // Would be logging this in production
() => Console.WriteLine("OnCompleted"));
scheduler.Start(
() => source,
0,
TimeSpan.FromSeconds(1).Ticks,
TimeSpan.FromSeconds(5).Ticks);
}
Что приводит к...
OnNext 0
OnNext 1
OnNext 2
OnNext 3
OnCompleted
... это именно то, что я хочу, кроме того факта, что я хотел бы зарегистрировать исключение, которое возникает между 2 и 3.
Есть ли способ позволить подписчику увидеть исключение в OnError (и зарегистрировать его), а затем повторно подписаться, чтобы он увидел 3?
Спасибо!