这是一个简短的例子:
假设
forever
是永不结束的IO,我想运行3秒触发取消:
val start = forever.runCancelable {
case Left(ee) =>
IO {
println(s"FAILUE: ${ee.toString}")
}
case Right(kk) =>
IO {
println("SUCCESS!")
}
}
val cancelling = start.unsafeRunSync()
Thread.sleep(3000)
cancelling.unsafeRunSync()
println("finished")
执行这段代码时,我发现没有执行任何println取消函数(println和断点都不起作用)。
那么触发它的正确方法是什么?