我试图通过直接潜入并尝试将一些C#代码转换为它来学习F#。我正在重写的一件事是异步方法的一部分,它等待调用HttpClient的GetAsync而不使用结果。那就是:
await httpClient.GetAsync("http://www.example.com");
以下是我尝试过的唯一没有得到红色波浪形的东西。虽然我认为它是有效的,但它确实创建了一个我可能想要避免的变量。
let! ignoreme = Async.AwaitTask <| httpClient.GetAsync("http://www.example.com")
应该怎么做?
答案 0 :(得分:5)
将do!
运算符与Async.Ignore
结合使用:
do! Async.AwaitTask(httpClient.GetAsync("http://www.example.com")) |> Async.Ignore
这与编写let! ignoreme = ...
然后忽略ignoreme
绑定相同。
但是我认为最好坚持使用F#数据类型 - 尽可能避免使用Async.AwaitTask
并直接使用Async<'T>
类型。我认为FSharp.Data library会有很好的帮助。