我有以下代码
def processInfoAndReturnResponse(input: Input]): EitherT[Future, CustomException, A] = ???
def sendMessage(message: A): monix.eval.Task[Boolean] = ???
def anotherMethod(message: Input): Future[Either[CustomException, Unit]]= ???
def integrate(): Future[Either[GoogleException, A]] = {
(for {
response <- processInfoAndModelResponse(input)
_ <- EitherT.liftF[Future, CustomException, A](sendMessage(response).map(_ => response).runToFuture
}yield response).value
到目前为止,这一切都很好。但是现在,我想从 sendMessage 中获取布尔值,然后只有当 sendMessage 返回 true 时,我才想调用另一个方法。
我知道它们是不同的单子。请让我知道如何以更简洁的方式添加所有三个调用以进行理解。感谢帮助