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 } }