Hacker News new | ask | show | jobs
by lihaoyi 4504 days ago
It uses normal Scala `Future`s. You get two `ExecutionContext`s: `queued` and `runNow`. You can't block on a `Future`. That covers just about all the ScalaJS specific stuff, the rest is plain Scala.

Take a look at [Scala.Rx](https://github.com/lihaoyi/scala.rx) or [uTest](https://github.com/lihaoyi/utest) if you want to see code examples of how `Future`s are used in ScalaJS, but I think you'll be disappointed: it's exactly the same code that gets run on Scala-JVM!

1 comments

You said:

> You can't block on a `Future`

Which answers my question. Thank you.

But then you also said:

> it's exactly the same code that gets run on Scala-JVM

That can't be exactly true, since "Awaitable" [1] doesn't appear anywhere in the scala-js codebase. So I guess as long as you don't mention that trait by name, or attempt to block on a future, then your effectively duck-typed Scala-JVM code will be able to run unmodified on Scala-JS.

[1]: http://www.scala-lang.org/files/archive/nightly/docs/library...