进行异步调用时,有多种方法可以传回结果。一个很好的抽象是[Async
],它允许检索输出值,放弃(cancel
),错误检查,将值组合在一起等等。
是否有类似的,很好的抽象来返回异步结果流?也就是说,被调用的服务异步发送多个值,然后是最终结果?类似于gRPC的server-side streaming。
虽然 stm 提供频道,队列等,但它们意味着无限,无法完成/取消。
可能我认为最接近的抽象是ConduitM Void o IO r
,但这适用于同步计算。可能它也可以将内部通道包装在其中以使其异步,但 conduit 似乎是为此目的而非常依赖的。