如何在 Rx.NET 和 UniRx 中编写 SelectManyLatest 运算符
How to write a SelectManyLatest operator in Rx.NET and UniRx
SelectManyLatest
是必要的运算符。
但是所有互联网都不回答你怎么写。
那怎么办?
SelectManyLatest
是其他 Rx 框架中的 FlatMapLatest
。
此运算符类似于 SelectMany
,但如果发生新的发射,它会完成之前的订阅。
添加为扩展
public static IObservable<V> SelectManyLatest<T, V>(this IObservable<T> source, Func<T, IObservable<V>> selector)
{
return source
.Select(selector)
.Switch();
}
SelectManyLatest
是必要的运算符。
但是所有互联网都不回答你怎么写。
那怎么办?
SelectManyLatest
是其他 Rx 框架中的 FlatMapLatest
。
此运算符类似于 SelectMany
,但如果发生新的发射,它会完成之前的订阅。
添加为扩展
public static IObservable<V> SelectManyLatest<T, V>(this IObservable<T> source, Func<T, IObservable<V>> selector)
{
return source
.Select(selector)
.Switch();
}