如何同步执行 Lwt 线程

How to synchronously execute an Lwt thread

有什么方法可以同步执行用 Lwt 库创建的线程吗?

具体来说,我正在尝试 运行 向服务器发出一系列 post 请求,计算一些值并 returns 结果。

基于对这个问题的回答:

我可以使用低级方法(套接字)或使用 Cohttp 库来实现。 低级方法的优点是直接和直接,但我宁愿坚持使用 Cohttp(不需要 read/write 循环等)。不幸的是,我对 Lwt 完全陌生,并且基于: https://mirage.io/wiki/tutorial-lwt 我知道从 a ta 获得结果的唯一方法是 运行 Lwt_main.run 这应该在顶层调用,这对我来说不是一个选项。

TL:DR

有什么方法可以从以下位置获得结果:

Client.get (Uri.of_string "http://localhost:8080/res")

不调用 Lwt_main.run 或为每个请求调用 Lwt_main.run(深入代码内部)不是一个坏主意吗?

您可以在程序内部调用 Lwt_main.run,前提是该调用未嵌套在对 Lwt_main.run 的外部调用中。听起来它不会嵌套在你的案例中,所以你可以在你提出请求的地方调用它。