假设我在使用无标记Cats-effect
最终方法的项目中有以下方法签名:
def schedule[F[_]: Applicative : Async: Timer]
我正在尝试schedule
使用纯 FP 对方法调用安排操作。
我试过这样:
Timer[F].sleep(FiniteDuration(10, TimeUnit.SECONDS)) *> {
Applicative[F].pure(println("tick"))
}
但它没有用,因为效果 println("tick")
在Timer
初始化阶段执行。
我怎样才能让它正常工作?
我还可以创建某种递归构造,以便每 10 秒重复一次我的预定操作吗?