相同的 scala Task 代码在沙箱中有效,但在 intelliJ 中无效

The same scala Task code works in sandbox but doesn't work in intelliJ

只需尝试一些简单的任务示例。以下代码工作正常

import monix.eval.Task
import monix.execution.CancelableFuture
import monix.execution.Scheduler.Implicits.global

import scala.util.Success

val task = Task { 1 + 1 }
val cancellable = task.runAsync {
  case Right(result) => println(s"result is $result")
  case Left(err) => System.out.println(s"ERROR: ${err.getMessage}")
}

但使用 运行ToFuture 仅在沙箱中有效,当我 运行 它在 intelliJ 中时无效(当然在 intelliJ 中我 运行 它在对象中)

val task = Task { 1 + 1 }

val future: CancelableFuture[Int] = task.runToFuture
future.onComplete {
  case Success(res) => println(s"result is: $res")
}

在 intelliJ 中没有打印 2,只是

"C:\Program Files\Java\jdk1.8.0_192\bin\java.exe"

Process finished with exit code 0

什么原因,没想到这么早就卡住了。提前致谢

当 运行 作为 stand-alone 程序时,程序会在任务完成之前退出,因此您不会得到任何输出。您需要等待任务完成。

Await.result(future, Duration.Inf)