0
仍在玩ReactiveUi。CreateAsyncObservable不會提高OnComplete
我目前無法確定序列何時結束。我有以下代碼:
public RxTest()
{
DownloadDocument = ReactiveCommand.CreateAsyncObservable(_ => GetItems().ToObservable());
DownloadDocument.Subscribe(Console.WriteLine,() => Console.WriteLine("Done"));
}
public ReactiveCommand<int> DownloadDocument { get; set; }
public void RunCommand()
{
DownloadDocument.Execute(new object());
}
IEnumerable<int> GetItems()
{
for (int i = 0; i < 20; i++)
{
Thread.Sleep(100);
yield return i;
}
}
打印數字1到19,但「完成」不打印(即,不會出現OnComplete)。
相同(相似)的代碼在純粹的Rx就好了(我用Linqpad測試這一點,但是當鞋獨角成我的測試應用還曾)...
{
IObservable<int> range = GetItems().ToObservable(Scheduler.NewThread);
range.ObserveOn(Scheduler.Default).Subscribe (Console.WriteLine,() => Console.WriteLine("Done"));
}
但現在,包裝與另一命令的命令... 'ExecuteDownload = ReactiveCommand.CreateAsyncTask(Observable.Return(真),異步_ => { 變種X =等待DownloadDocument.ExecuteAsync(); CompletionState = CompletionState.Success; return x; });' 這是我想避免的那種代碼...(抱歉,不知道如何在評論中獲得正確的格式)... – enomam 2014-10-28 05:14:34
,與上述,我需要訂閱ThrownExceptions在這兩個命令爲他們工作。 – enomam 2014-10-28 05:32:29