所以我有一个网络工作者:
package pWorker
import scala.scalajs.js._
import org.scalajs.dom._
object WorkScript extends scala.scalajs.js.JSApp
{
def main(): Unit =
{
val x = 4
val y = 8
val z = x + y
println("Worker x + y =" -- z.toString)
}
}
从主JavaScript线程启动时,worker会根据需要打印到控制台。但我无法找到一种方法来称呼:
self.addEventListener('message', function(e) {}
self.postMessage(e.data);
我会从一个简单的Javascript文件调用。
答案 0 :(得分:5)
与Scala.js一样,如果您没有找到JavaScript API的现有类型,您可以选择使用动态类型或编写自己的类型。
val self = js.Dynamic.global
self.addEventListener("message", { (e: dom.MessageEvent) =>
...
}
self.postMessage(someData)
@js.native
object WorkerGlobal extends js.GlobalScope {
def addEventListener(`type`: String, f: js.Function): Unit = js.native
def postMessage(data: js.Any): Unit = js.native
}
WorkerGlobal.addEventListener("message", { (e: dom.MessageEvent) =>
...
}
WorkerGlobal.postMessage(someData)