如何从Seq内获得异步值.在f#中映射



使用以下代码-我使用Microsoft。剧作家抓取网页

第一行返回System.Collections.Generic.IReadOnlyList

我不确定如何正确地获得第二行,因为它需要在每一行执行异步(它目前不工作)

let! lines = Async.AwaitTask(page.QuerySelectorAllAsync("#statementLines>div"))
let! values = lines |> Seq.map( fun line -> Async.AwaitTask(line.GetAttributeAsync("data-statementlineid")))

要执行一系列异步计算并获得结果,请分别使用Async.SequentialAsync.Parallel进行顺序或并行执行。

这两个方法都以asyncs序列作为参数,并以数组的形式返回结果。这两种方法都保证数组中结果的顺序与序列中异步计算的顺序相同。

let! lines = Async.AwaitTask(page.QuerySelectorAllAsync("#statementLines>div"))
let! values = 
lines 
|> Seq.map (fun line -> Async.AwaitTask (line.GetAttributesAsync("data-statementlineid")))
|> Async.Sequential

最新更新