Скрипт fsx завершается до возвращения асинхронного ответа
У меня есть следующий скрипт.fsx:
#r "packages/FSharp.Data/lib/net40/FSharp.Data.dll"
open FSharp.Data
async { let! html = Http.AsyncRequestString("http://stackru.com")
printfn "%d" html.Length }
|> Async.Start
Код правильный, так как он работает как положено в fsharpi
, Я подозреваю, что происходит то, что скрипт завершается до того, как возвращается асинхронный ответ. Какой самый простой способ дождаться ответа?
1 ответ
Решение
Ты можешь использовать |> Async.RunSynchronously
в этом случае. См. https://msdn.microsoft.com/en-us/library/dd233250.aspx или главу 11 в книге "Эксперт F# 4.0". Async.Start
могут быть очень полезны пинки функций, которые будут возвращать свои результаты в графический интерфейс без блокировки.