簡體   English   中英

在 FSI 中運行異步計算表達式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM