You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
783 B
34 lines
783 B
package outwatchapp.util
|
|
import scala.concurrent.Future
|
|
|
|
import typings.paralleljs.ParallelOptions
|
|
import typings.paralleljs.mod.{^ => Parallel}
|
|
|
|
import scalajs.js
|
|
import scalajs.js.|
|
|
|
|
object ParallelDemo {
|
|
val p =
|
|
new Parallel(js.Array(1, 2, 3, 4, 5), ParallelOptions().setMaxWorkers(2))
|
|
// val pr = new js.Promise()
|
|
|
|
// p.map((_: Int) * 2)
|
|
|
|
def toFuture[A](p: Parallel[A]): Future[A] = {
|
|
val p2 = scala.concurrent.Promise[A]()
|
|
p.`then`(
|
|
{ (v: A) =>
|
|
p2.success(v)
|
|
(): Unit | js.Thenable[Unit]
|
|
},
|
|
{ (e: typings.std.Error) =>
|
|
p2.failure(e match {
|
|
case th: Throwable => th
|
|
case _ => js.JavaScriptException(e)
|
|
})
|
|
(): Unit | js.Thenable[Unit]
|
|
}
|
|
)
|
|
p2.future
|
|
}
|
|
}
|