Попытайтесь получить будущее из запущенного примера обратного вызова, используя код в документации Scala.js :
def onLoadFuture(img: HTMLImageElement) = {
if (img.complete) {
Future.successful(img.src)
} else {
val p = Promise[String]()
// [error] ^
img.onload = { (e: Event) =>
p.success(img.src)
}
p.future
}
}
получить ошибку компиляции: объект Promise не принимает параметры типа
plugins.sbt:
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.23")
build.sbt:
lazy val client = (project in file("client")).settings(commonSettings).settings(
addCompilerPlugin("org.scalamacros" % "paradise" % "2.1.0" cross CrossVersion.full),
scalaJSUseMainModuleInitializer := false,
libraryDependencies ++= Seq(
"com.thoughtworks.binding" %%% "dom" % "latest.release",
"org.scala-js" %%% "scalajs-dom" % "0.9.3",
"com.lihaoyi" %%% "scalatags" % "0.6.7"
)
).enablePlugins(ScalaJSPlugin).enablePlugins(JSDependenciesPlugin).
dependsOn(sharedJs)