fsx脚本在异步响应返回之前完成

时间:2016-04-01 11:16:25

标签: f# f#-interactive

我有以下.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中按预期工作。我怀疑发生的事情是脚本在异步响应返回之前退出。什么是等待回复的最简单方法?

1 个答案:

答案 0 :(得分:2)

在这种情况下,您可以使用|> Async.RunSynchronously。请参阅专家F#4.0一书中的https://msdn.microsoft.com/en-us/library/dd233250.aspx或第11章。 Async.Start可以非常有用,可以将结果返回到GUI而不会阻塞。