首页 > 解决方案 > 在scala中同时导入ExecutionContext.global和ExecutionContext.Implicits.global

问题描述

我有以下测试用例:

test("test future") {
    import scala.concurrent.ExecutionContext.global
    import scala.concurrent.ExecutionContext.Implicits.global
    case class Result(value: String)
    val f = Future {
      println("Start future")
      Thread.sleep(1000)
      println("End future")
      Result("The Job is finished")
    }

    f.onComplete({
      case Success(r) => println(r.value)
      case Failure(ex) => ex.printStackTrace()
    })


    //Hold the test thread
    Thread.sleep(3000)

  }

有编译错误抱怨Cannot find an implicit ExecutionContext

但是如果我import scala.concurrent.ExecutionContext.global从代码中删除,那么它就可以工作。

我会问如果我同时导入ExecutionContext.globalExecutionContext.Implicits.global

标签: scala

解决方案


你为什么不试试这个

import scala.concurrent.ExecutionContext.Implicits.{ global => ImplicitsGlobal }
import scala.concurrent.ExecutionContext.global

推荐阅读