MN
WhenAnyValue — T -> IObservable<T>ReactiveCommand — TOut -> IObservable<TOut>Events — event Action<T> -> IObservable<T>Size: a a a
MN
WhenAnyValue — T -> IObservable<T>ReactiveCommand — TOut -> IObservable<TOut>Events — event Action<T> -> IObservable<T>λР
IEnumerable<T> и IObservable<T> обе монадыMN
λР
RS
MN
RS
λР
λР
IAsyncEnumerable всё ещё pull-basedRS
λР
λР
IObservable и внутри push, и API для pushλР
IObservable ты подписываешься через Subscribe или через др. оператор, а у IAsyncEnumerable надо пулить значения всякими OnNext, для UI оно не оч удобное. это асинхронный IEnumerable собственно говоря, даλР
IObservable можно писатьvar value = await observable.Take(1)RS
λР
IObservable? который из System (и System.Reactive)λР
RS
IObservable? который из System (и System.Reactive)λР
RS