如何从 F# 中的 Seq.map 中获取异步值
How to get Async Values from within Seq.map in F#
使用以下代码 - 我正在使用 Microsoft.Playwright 抓取网页。
第一行returnsSystem.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.Sequential
或 Async.Parallel
进行顺序或并行执行。
这两种方法都将 async
序列作为参数,并将 return 结果作为数组。这两种方法都保证数组中结果的顺序与序列中异步计算的顺序相同。
let! lines = Async.AwaitTask(page.QuerySelectorAllAsync("#statementLines>div"))
let! values =
lines
|> Seq.map (fun line -> Async.AwaitTask (line.GetAttributesAsync("data-statementlineid")))
|> Async.Sequential
使用以下代码 - 我正在使用 Microsoft.Playwright 抓取网页。
第一行returnsSystem.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.Sequential
或 Async.Parallel
进行顺序或并行执行。
这两种方法都将 async
序列作为参数,并将 return 结果作为数组。这两种方法都保证数组中结果的顺序与序列中异步计算的顺序相同。
let! lines = Async.AwaitTask(page.QuerySelectorAllAsync("#statementLines>div"))
let! values =
lines
|> Seq.map (fun line -> Async.AwaitTask (line.GetAttributesAsync("data-statementlineid")))
|> Async.Sequential