我有一个函数可以产生无限的monadic动作列表(在我的情况下是HTTP调用),类似这样:
getStream = foldMap makeHttpCall [1..]
where
makeHttpCall bookId = ...
我希望能够像这样使用这个功能:
S.take 10 $ (asyncly getStream)
我正在努力实现的两件事:
10
传递给getStream
函数上面的代码进行了10次以上的HTTP调用,并且首先返回的内容在流中传递。我已经探索了其他组合器,如wAsyncly
和parallely
,但行为保持不变。
有没有办法在Streamly中实现这一目标?
上面的代码示例使用以下导入:
import Streamly
import qualified Streamly.Prelude as S
答案 0 :(得分:0)
您的代码应在预期从streamly-0.4.0开始运行。也就是说,它将最多生成10个并发请求。