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