2013-07-12 2 views
1

일부 비 직렬화 작업을 수행하는 주체가 있습니다. deserialization 예외를 처리하고 내 주체에 OnError (ex)를 호출하여 고객에게 알리는 것만으로 나는 사려 깊다고 생각했습니다. 그러나 OnError를 호출하면 모든 관찰자의 연결이 끊기는 것 같아서 조금 놀랐습니다. 그것은 의도 된 행동입니까? 내 경우에는 클라이언트가 원하는 경우 계속 로그 할 수 있도록 예외를 제공하고 싶습니다. 그럴 수 없어?Rx를 사용하여 옵저버를 지우는 OnError

답변

2

이것은 의도 한 것입니다. OnErrorOnComplete과 비슷합니다. 일단 전화를하면 더 이상 OnNext에 전화 할 수 없으므로 옵서버들 사이에 아무런 소용이 없습니다. 역함수를 고려해보십시오. 이 던져지면 IEnumerator을 계속 열거 할 수 없습니다.

이 관찰 가능 상태를 계속 유지하려면 오류에 대해 별도의 관찰 가능을 만들어야합니다.

+0

멋진 답변입니다. –

관련 문제