ReactiveAsyncCommand (SL5)를 만들었으나 OnError 메서드를 시작하기 위해 구독을 가져 오지 못했습니다. 여기에 코드ReactiveAsyncCommand에 가입하면 throw 된 예외에서 OnError가 호출되지 않음
Start1Command = new ReactiveAsyncCommand();
Start1Command.RegisterAsyncObservable(_ => this.Start())
.Subscribe<int>(
u => Debug.WriteLine("OnNext-->" + u.ToString()),
ex => Debug.WriteLine("OnError-->" + ex.Message),
() => Debug.WriteLine("OnComplete-->")
);
Start1Command.Execute(null);
그리고
public IObservable<int> Start()
{
return Observable.Start(() =>
{
throw new Exception("Exception");
return 42;
},
RxApp.TaskpoolScheduler);
}
나는 내가 ThrownExceptions에 가입해야합니다 제안하는 ReactiveUI 프레임 워크에서 예외가이 코드를 실행하려면 시작
코드입니다. 내가 할 때, 위에서 던져 예외는 올바르게 처리됩니다.Start1Command.ThrownExceptions.Subscribe(ex => Debug.WriteLine("ThrownExceptions OnNext-->" + ex.Message));
명령 구독이 OnError를 호출해야합니까? 또는 ThrowExceptions를 사용해야합니까?
OnNext
내가 두 명령의 ThrownExceptions에 가입해야 예상되는 동작이있는 경우에만 수신 구독하고 가정하지 마십시오 RegisterAsyncTask()에서 OnError 람다. 구독()? ThrowExceptions 핸들러가 실행되고 반환 된 직후에 OnError lambda (어쨌든 비어 있음)를 생략하면 예외가 UI 스레드에서 (잡을 수없는 컨텍스트에서) throw됩니다. 둘 다 지정되면 둘 다 실행되고 UI 스레드에서 예외가 발생하지 않습니다. –현재 예상 된 동작 일 수 있지만 예상 된 동작이 좋지 않습니다. 버그를 신고 할 수 있습니까? –