Haskell 异步流化结果的抽象

Haskell 异步流化结果的抽象,haskell,asynchronous,stream,Haskell,Asynchronous,Stream,在执行异步调用时,有多种方法传回结果。一个很好的抽象是[Async],它允许检索输出值、放弃()、错误检查、将值组合在一起等 对于返回异步结果流,是否有类似的、很好的抽象?也就是说,被调用的服务异步发送多个值,然后是最终结果?类似gRPC的东西 虽然stm提供频道、队列等,但它们是无限的,没有完成/取消的手段 我脑海中最接近的抽象可能是,但这是用于同步计算的。可能也可以在其中封装一个内部通道以使其异步,但对于这种目的来说,管道似乎是一个非常重要的依赖项。您当然可以围绕任何您喜欢的内容(Fancy

在执行异步调用时,有多种方法传回结果。一个很好的抽象是[
Async
],它允许检索输出值、放弃()、错误检查、将值组合在一起等

对于返回异步结果流,是否有类似的、很好的抽象?也就是说,被调用的服务异步发送多个值,然后是最终结果?类似gRPC的东西

虽然stm提供频道、队列等,但它们是无限的,没有完成/取消的手段


我脑海中最接近的抽象可能是,但这是用于同步计算的。可能也可以在其中封装一个内部通道以使其异步,但对于这种目的来说,管道似乎是一个非常重要的依赖项。

您当然可以围绕
任何您喜欢的内容(FancyEnvelope a)
构建一个精简的抽象,允许您向消费者传达“最后一个元素”或“取消”。我不知道你想要的消费API是什么样子的。还有
管道并发性
,我还没有使用过。我会选择
管道并发性
管道
。此外,任何具有类似
事件
类型的FRP库都可以完成这项工作