键入&#39; Async <string [] =“”>&#39;与&#39; seq&lt;&#39; a&gt;&#39;

时间:2016-12-09 17:54:03

标签: asynchronous f# seq

我有一个mySources变量seq<Async <string []>>。我的目标是在单个Async<string []>

中展平序列并将序列中的所有元素连接起来

我正在使用Seq.collect方法。

let myJoinedAsyncs = Seq.collect (fun elems -> elems) mySources

但是这行在mySource上给出了一个错误,表明:

类型&#39; Async&#39;与&#39; seq&lt;&#39; a&gt;&#39;

类型不兼容

有什么想法吗? 谢谢!

1 个答案:

答案 0 :(得分:5)

您可以使用Async.Parallel收集内部值并连接生成的序列:

let flattenAsync (asyncs : seq<Async<'a []>>) = async {
    let! ss = Async.Parallel asyncs
    return Array.concat ss
}