小编use*_*858的帖子

如何从Async [IO]创建Async [Future]

我正在尝试在doobie存储库的代码中隐式添加Async和Sync。Sync和Async [F]可以正常工作IO。我想将它们转换为未来并面临问题

我试图从IO创建自己的Aync

def futureAsync(implicit F: MonadError[Future, Throwable]): Async[Future] = new Async[Future] {
    override def async[A](k: (Either[Throwable, A] => Unit) => Unit): Future[A] = IO.async(k).unsafeToFuture()

    override def asyncF[A](k: (Either[Throwable, A] => Unit) => Future[Unit]): Future[A] =
      throw new Exception("Not implemented Future.asyncF")

    override def suspend[A](thunk: => Future[A]): Future[A] = thunk

    override def bracketCase[A, B](acquire: Future[A])(use: A => Future[B])(release: (A, ExitCase[Throwable]) => Future[Unit]): Future[B] =
      throw new Exception("Not implemented Future.bracketCase")

    override def raiseError[A](e: Throwable): Future[A] = F.raiseError(e)

    override def handleErrorWith[A](fa: Future[A])(f: Throwable …
Run Code Online (Sandbox Code Playgroud)

scala scala-cats doobie

6
推荐指数
1
解决办法
558
查看次数

标签 统计

doobie ×1

scala ×1

scala-cats ×1