是否可以设计一个 Rx 运算符来吞噬同一序列中的重复异常(与 Retry 或 Catch 不同)?本质上与 .Select(x => x) 相同,但会忽略异常。 (我知道这违反了准则)。
请您参考如下方法:
简短的回答是“不”。
稍微不那么简短的回答是你的前提有缺陷;这是因为你不能让一个 Observable 抛出超过一个错误,而你假设的操作符将是一个观察者。观察者,根据定义,不应该影响 Observables(只是不要告诉 Heisenberg 我说过)。
因此,这样的运算符在逻辑上是不可能的,因为它需要更改历史 - 返回并防止您的 Observable 抛出异常。当然,除非您的 Observable 违反了 Rx 的规则。
不要让它那样做。 :) Rx 无论如何都会很好地防止这种情况发生。 Subject<T>
,例如,不会在第一个 OnError 之后发布。