是否有内置的方法将IEnumerable <Task <T >>转换为IObservable <T>.顺序并不重要,只是我得到的东西,但最好是因为它们已经完成.
如果它还不存在,那么实现它的好方法是什么?
I want to convert IEnumerable<Task<T>> to IObservable<T>. I found solution to this here:
IObservable<T> ToObservable<T>(IEnumerable<Task<T>> source)
{
return source.Select(t => t.ToObservable()).Merge();
}
Run Code Online (Sandbox Code Playgroud)
It is perfectly ok for usual cases, but I need to handle exceptions, that could raise in that Tasks... So IObservable<T> should not be dead after first exception.
What I read, recommendation for this use case is to use some wrapper, that will carry actual value or error. So my attempt was
IObservable<Either<T, Exception>> ToObservable<T>(IEnumerable<Task<T>> source) …Run Code Online (Sandbox Code Playgroud)