ReactiveAsyncCommand(SL5)を作成しましたが、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);
}
このコードを実行すると、ReactiveUIフレームワークから例外が発生し、ThrownExceptionsにサブスクライブする必要があることを示唆します。私がそうするとき、私が上で投げた例外は正しく扱われます。
Start1Command.ThrownExceptions.Subscribe(ex => Debug.WriteLine("ThrownExceptions OnNext-->" + ex.Message));
コマンドサブスクリプションがOnErrorを呼び出すことを期待すべきでしたか?または、ThrownExceptionsを使用する必要がありますか。