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