将lwt.t代码放入mirage os的Ocaml中的无限循环中

将lwt.t代码放入mirage os的Ocaml中的无限循环中,ocaml,ocaml-lwt,mirage,Ocaml,Ocaml Lwt,Mirage,我从中修改了以下代码块: 打开Lwt.Infix 主模块(KV:Mirage_KV.RO)=结构 让我们开始= 让我们从文件中读取= KV.get KV(幻影_KV.Key.v“秘密”)>|=函数 |错误e-> Logs.warn(fun f->f“无法将机密与已知常量进行比较:%a” KV.pp_误差(e) |确定存储的\u机密-> Logs.info(fun f->f“Data->%a”Format.pp\u print\u string存储\u secret); 在里面 从\u文件中读取\

我从中修改了以下代码块:

打开Lwt.Infix
主模块(KV:Mirage_KV.RO)=结构
让我们开始=
让我们从文件中读取=
KV.get KV(幻影_KV.Key.v“秘密”)>|=函数
|错误e->
Logs.warn(fun f->f“无法将机密与已知常量进行比较:%a”
KV.pp_误差(e)
|确定存储的\u机密->
Logs.info(fun f->f“Data->%a”Format.pp\u print\u string存储\u secret);
在里面
从\u文件中读取\u
结束
此代码从名为“secret”的文件中读取数据并输出一次我想在中间有睡眠的情况下不断读取文件并从中输出。

用法是这样的:当这个程序运行时,我将用其他进程更新
secret
文件,因此我希望看到输出中的更改

我试过什么

我试图将最后一条语句放入while循环中

in
尽管如此
从\u文件中读取\u
完成
但是它给出了一个错误,这个表达式的类型为unit Lwt.t,但是应该是unit类型的表达式,因为它位于while循环的主体中


我只知道lwt是一个线程库,但我不是ocaml开发人员,也不想成为一个(我对MirageOS感兴趣),所以我找不到编写它的函数语法。

您需要将循环作为函数编写。e、 g

让rec循环()=
从文件kv>>=fun()->中读取
(*在这里等?*)
循环()
在里面
循环()

您需要将循环作为函数编写。e、 g

让rec循环()=
从文件kv>>=fun()->中读取
(*在这里等?*)
循环()
在里面
循环()