![](/img/trans.png)
[英]'while' in async computation expression where the condition is async
[英]Running async computation expression in FSI
我正在嘗試在 FSI 中運行此代碼
#r @"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.1\ref\net6.0\System.Net.Http.dll"
async {
let httpClient = new System.Net.Http.HttpClient()
let! response = httpClient.GetAsync("") |> Async.AwaitTask
response.EnsureSuccessStatusCode() |> ignore
return! response.Content.ReadAsStringAsync() |> Async.AwaitTask
}
我收到以下錯誤
錯誤 FS0193:編譯單元“System.Runtime”中的模塊/命名空間“System.Threading.Tasks”不包含命名空間、模塊或類型“Task`1”
但是,當我將該代碼粘貼到項目中的文件中時,它會按預期編譯。
我錯過了什么?
我不確定您為什么會收到此錯誤,但您應該能夠在不指定完整路徑的情況下引用標准 .NET 庫。
我嘗試使用以下內容創建一個 F# 腳本,它工作得非常好(我仍在使用 F# 5,但我不希望這會在新版本中改變):
#r @"System.Net.Http.dll"
async {
let httpClient = new System.Net.Http.HttpClient()
let! response = httpClient.GetAsync("http://tomasp.net") |> Async.AwaitTask
response.EnsureSuccessStatusCode() |> ignore
return! response.Content.ReadAsStringAsync() |> Async.AwaitTask
}
|> Async.RunSynchronously
我只需要添加一個真正的 URL 來下載和Async.RunSynchronously
來實際運行代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.