是否可以将 IObservable<T> 转换为 IAsyncEnumerable<T>

Posted

技术标签:

【中文标题】是否可以将 IObservable<T> 转换为 IAsyncEnumerable<T>【英文标题】:Is it possible to transform an IObservable<T> to an IAsyncEnumerable<T> 【发布时间】:2020-03-13 16:01:42 【问题描述】:

我有一个可观察的 IObservable&lt;T&gt; / ISubject&lt;T&gt; 并希望使用 SignalR 将其返回。 SignalR 具有异步流的概念,您必须在其中返回 IAsyncEnumerable&lt;T&gt;

如何将IObservable&lt;T&gt; 转换为IAsyncEnumerable&lt;T&gt;

【问题讨论】:

【参考方案1】:

System.Linq.Async 程序集中有一个 ToAsyncEnumerable 扩展方法,可作为 NuGet 包 here 提供。

public static IAsyncEnumerable<TSource> ToAsyncEnumerable<TSource>(
    this IObservable<TSource> source);

【讨论】:

以上是关于是否可以将 IObservable<T> 转换为 IAsyncEnumerable<T>的主要内容,如果未能解决你的问题,请参考以下文章

从 WCF 返回 IObservable<T>

创建一个 IObservable<T> 正确返回大量数据(异步?)

无效的IObservable转换,运行时异常

如何从 ShowDialog 返回 IObservable<DialogResult>

泛型中的 <out T> 与 <T>

假冒由Observable.FromEvent生成的正在进行的项目