在Scala.js中,代码如何在浏览器window或WebWorker中检测它是运行?

In Scala.js, how can code detect whether it is running in a browser window or a WebWorker?

从普通的JavaScript,我们可以直接测试特征;看: Reliably detect if the script is executing in a web worker.

你会如何从 Scala.js 完成这个?

正如 Justin du Coeur 已经评论的那样,因为 ScalaJS 编译到 JavaScript,没有什么是你在 JavaScript 中可以做的,而你在 ScalaJS 中做不到的。

因此您会发现代码看起来与您链接的代码非常相似:

import org.scalajs.dom

if(js.typeOf(dom.document) == "undefined") {
  println("I'm fairly confident I'm a webworker")
} else {
  println("I'm fairly confident I'm in the renderer thread")
}

Try it out!


希望对您有所帮助。