Скрипт 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 могут быть очень полезны пинки функций, которые будут возвращать свои результаты в графический интерфейс без блокировки.

Другие вопросы по тегам