在JavaScript中,有一个名为Promise.race
的函数,该函数接受一个承诺列表并返回一个新的承诺,该承诺在输入的 any 完成时完成。
请参阅:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/race
F#具有Async.Parallel
,它在所有 all 输入异步操作完成时完成,但似乎没有与 any 等价的内容(例如Async.Race
)。
如何用F#编写此代码?
答案 0 :(得分:1)
您可以使用任务。
类似这样的东西:
let any xs =
xs
|> Seq.map Async.StartAsTask
|> Task.WhenAny
|> Async.AwaitTask