2017-12-07 1 views
1

Ich versuche, Code in einem Future auszuführen, der einige Daten an einem REST-Endpunkt festhält, der selbst einen DB-Aufruf ausführt. Ich versuche, es in einer Zukunft auszuführen, also hält es den anderen Code nicht herum, der zeitabhängig sein kann. Es ist mir egal, was im Future Code passiert, wenn es erfolgreich ist, also versuche ich eine Future [Unit] auszuführen. Aber wenn ich versuche, den folgenden Code zu schreiben, unterstreicht IntelliJ meine Success(_)Die Methode success.unapply kann nicht aufgelöst werden, wenn ich mit einem Future [Unit] arbeite

sagen

nicht lösen Methode success.unapply

Hier ist mein Code:

def persistProgress():Unit = { 
    val result:Future[Unit] = Future { 
     //API Rest Call here with a case class 
    } 
    result.onComplete { 
     case Success (_) => // do nothing if successful 
     case Failure(e) => logger.info("Unable to persist" + e.getMessage) 
    } 

} 

Jede Idee, wie zu tun Dies?

+0

In diesem speziellen Fall, was ist mit ['.failed.foreach (...)'] (http://www.scala-lang.org/api/2.12.4/scala/concurrent/Future.html# fehlgeschlagen: scala.concurrent.Future [Throwable])? –

+0

Erhalten Sie den gleichen Fehler, wenn Sie mit dem Scala-Compiler direkt oder über sbt erstellen? Sagt der Fehler wirklich "success.unapply" oder ist es "Success.unapply"? Ich denke, Sie würden einen anderen Fehler bekommen, wenn nicht, aber Sie haben 'Erfolg' definitiv importiert, richtig? –

Antwort

1

Sind Sie sicher, dass Sie richtige Importe erhalten? Insbesondere stammen diese Success und Failure aus Try, d. H. scala.util.Success und scala.util.Failure. Ihr Code mit korrekten Importen scheint zu funktionieren. Ok, wie Sie sehen können here.

Verwandte Themen