首页 > 解决方案 > 如何同步执行 Lwt 线程

问题描述

有什么方法可以同步执行用 Lwt 库制作的线程?

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

根据提供给这个问题的答案:

如何在 OCaml 中发出简单的 GET 请求?

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

TL:博士

有什么办法可以得到结果:

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

不调用Lwt_main.run或调用Lwt_main.run每个请求(代码深处)不是那么坏的主意吗?

标签: ocamlsynchronousocaml-lwt

解决方案


你可以Lwt_main.run在程序的深处调用,只要调用没有嵌套在对Lwt_main.run. 听起来它不会嵌套在您的案例中,因此您可以在发出请求的地方调用它。


推荐阅读