我有以下.fsx脚本:
#r "packages/FSharp.Data/lib/net40/FSharp.Data.dll"
open FSharp.Data
async { let! html = Http.AsyncRequestString("http://stackoverflow.com")
printfn "%d" html.Length }
|> Async.Start
代码是正确的,因为它在fsharpi
中按预期工作。我怀疑发生的事情是脚本在异步响应返回之前退出。什么是等待回复的最简单方法?
答案 0 :(得分:2)
在这种情况下,您可以使用|> Async.RunSynchronously
。请参阅专家F#4.0一书中的https://msdn.microsoft.com/en-us/library/dd233250.aspx或第11章。 Async.Start
可以非常有用,可以将结果返回到GUI而不会阻塞。