类型 'Async<string []>' 与类型 'seq<'a>' 不兼容

type 'Async<string []>' is not compatible with the type 'seq<'a>'

我有一个 mySources 变量,seq<Async <string []>>。我的目标是将序列展平并在单个 Async<string []>

中加入一个序列中的所有元素

我正在使用 Seq.collect 方法。

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

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

类型'Async'与类型'seq<'a>'

不兼容

有什么想法吗? 谢谢!

您可以使用 Async.Parallel 收集内部值并连接结果序列:

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