Files
Sharp7Reactive/Sharp7.Rx/Extensions/ObservableExtensions.cs
2018-11-05 16:23:37 +01:00

25 lines
765 B
C#

using System;
using System.Reactive;
using System.Reactive.Linq;
using System.Threading.Tasks;
namespace Sharp7.Rx.Extensions
{
internal static class ObservableExtensions
{
public static IObservable<Unit> Select<TSource>(this IObservable<TSource> source, Func<TSource, Task> selector)
{
return source
.Select(x => Observable.FromAsync(async () => await selector(x)))
.Concat();
}
public static IObservable<TResult> Select<TSource, TResult>(this IObservable<TSource> source, Func<TSource, Task<TResult>> selector)
{
return source
.Select(x => Observable.FromAsync(async () => await selector(x)))
.Concat();
}
}
}