【问题标题】:value unsafePerformSync is not a member of scalaz.concurrent.Task[String]值 unsafePerformSync 不是 scalaz.concurrent.Task[String] 的成员
【发布时间】:2016-12-14 09:05:51
【问题描述】:
value unsafePerformSync is not a member of scalaz.concurrent.Task[String]
[error]     val x = task.unsafePerformSync
[error]                  ^
[error] one error found

如何解决上述(2.11.8)scalac错误?谢谢。

来自以下代码sn-p:

import org.http4s._, org.http4s.dsl._                                  
import org.http4s.client.blaze._
import scalaz._, Scalaz._
import scalaz.concurrent.Task

object Client extends App {
  val client = PooledHttp1Client()
  val httpize = Uri.uri("http://httpize.herokuapp.com")

  def post() = {
    val req = Request(method = Method.POST, uri = httpize / "post").withBody("hello")
    val task = client.expect[String](req)
    val x = task.unsafePerformSync
    println(x)
}

【问题讨论】:

  • 这是哪个scalaz版本?

标签: scala scalaz


【解决方案1】:

自第一个 0.13 版本以来,http4s 已针对 Scalaz 7.1.x 和 7.2.x 交叉发布。在 Scalaz 7.1.x 中,unsafePerformSync 只是 run(对于理想情况下您不应该直接调用的东西,或者最多在程序中调用一次),这个名字太吸引人了。

所以你有两个选择。如果你想使用 Scalaz 7.2(除非你有其他限制,否则你应该这样做),在你的构建配置中找到这样的一行:

libraryDependencies += "org.http4s" %% "http4s-core" % "0.15.0"

并将其更改为:

libraryDependencies += "org.http4s" %% "http4s-core" % "0.15.0a"

或者,您可以坚持使用 Scalaz 7.1,只需更改您的代码以使用 run

【讨论】:

    猜你喜欢
    • 2018-03-14
    • 2017-08-22
    • 2017-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多