我有几种返回IObservable的方法。在所有情况下,我都将建立一个查询,该查询将导致返回的observable完成。通常,我一直在使用TakeUntil扩展方法。我在TakeUntil中使用的可观察类型包含一个标志,该标志告诉我是否存在问题。我如何使用它来导致我返回的可观察对象以错误结尾?我很喜欢TakeUntil重载,它允许可观察的对象以错误结尾。
目前,我已经破解了一种方法,该方法返回一个主题,该主题已订阅可观察查询,并且还订阅了我在TakeUntil中使用的其他可观察对象,以调用OnCompleted或OnError。我意识到这是一个糟糕的计划,但是我应该怎么做?任何帮助,不胜感激。
Dematerialize
运算符。这里是一个示例流,如果流中出现值10,则抛出该流,但如果任何值> = 9,则将其完成。
var errorAt10 =
values.Select(value =>
{
if (value == 10)
return Notification.CreateOnError<long>(new Exception());
if (value >= 9)
return Notification.CreateOnCompleted<long>();
return Notification.CreateOnNext(value);
})
.Dematerialize();