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

Tom*_*yer 5 f# asynchronous seq

我有一个mySources变量,seq<Async <string []>>.我的目标是将序列展平并将序列中的所有元素连接在一起Async<string []>

我正在使用Seq.collect方法.

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

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

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

有任何想法吗?谢谢!

Lee*_*Lee 5

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

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