Wykonując ten kod scala, nie mam żadnych danych wyjściowych w konsoli. (Naprawdę nie rozumiem, co się dzieje)Korzystanie z futures i Thread.sleep
Jeśli usuniemy Console.println("Console.println OK!")
=> wszystko wydaje się być w porządku.
Jeśli usuniemy Thread.sleep(2000)
=> wszystko wydaje się być w porządku.
Czy masz jakieś pomysły na ten temat? Dziękuję Ci bardzo!
Clément
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.duration._
import scala.concurrent.{Await, Future}
import scala.language.postfixOps
object ScalaFuture {
def main(args: Array[String]) {
val f: Future[String] = Future {
Thread.sleep(2000)
"future value"
}
f.onSuccess {
case s => {
Console.println("Console.println OK!")
System.out.println("System.out.println OK!")
}
}
Await.ready(f, 60 seconds)
}
}
Działa dobrze dla mnie. Co stanie się, jeśli będziesz spać przez kilka sekund po "Await.ready"? –
Jeśli śpię kilka sekund po "Await.ready' to działa dobrze => Mam wyjście. – ctamisier
Następnie musi wyjść, zanim uruchomi się 'onSuccess'. –