我正在尝试通过直接学习并尝试将一些 C# 代码转换成它来学习 F#。我正在重写的其中一件事是异步方法的一部分,它等待调用 HttpClient 的 GetAsync 而不使用结果。即:
await httpClient.GetAsync("http://www.example.com");
下面是我尝试过的唯一没有出现红色波浪线的东西。虽然我认为它是有效的,但它确实创建了一个我可能想避免的变量。
let! ignoreme = Async.AwaitTask <| httpClient.GetAsync("http://www.example.com")
应该怎么做?
最佳答案
使用 do!
运算符结合 Async.Ignore
:
do! Async.AwaitTask(httpClient.GetAsync("http://www.example.com")) |> Async.Ignore
这和写let! ignoreme = ...
是一样的然后忽略 ignoreme
绑定(bind)。
但是我认为最好坚持使用 F# 数据类型——避免 Async.AwaitTask
你可以在哪里直接使用 Async<'T>
类型。我认为 FSharp.Data library会有很好的帮助。
关于f# - 等待 System.Threading.Task 并忽略结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17522797/