Future
というコードスニペットから値を取得しようとしていますが、コードを実行すると、onComplete
関数が入力されません。私が間違っていることは何ですか?Scala未来onComplete()を入力していません
私は、それは他の記事で示唆されて以来、同様のマップを使用してみましたが、コメントに拡大する成功
override def findOrCreate(phoneNumber: String, creationReason: String): Future[AvroCustomer] = {
//query for customer in db
val avroCustomer: Future[AvroCustomer] = customerByPhone(phoneNumber)
avroCustomer.onComplete({
case Success(null) => {
createUserAndEvent(phoneNumber, creationReason, 1.0)
}
case Success(customer) => {
Future.successful(customer)
}
case Failure(exception) => {
}
})
待っている:
これは今、あなたがこの方法をチェーンでき
Option[avroCustomer]
を生成これを呼び出すコードで実行を終了しますか?あなたはおそらく '失敗 'を得てそれを無視していますか? – jkinkeadあなたの未来は、実際には非常に長い間完了していないかもしれません。デバッグのために 'Await.result'を試してみてください。 – francoisr
先物は_そこにあります - >ある時点で@jkinkeadが指摘した通りにそれらを待たなければなりません。プログラムの終わりに 'Future'を実行し、それを待たずに結果を見ることはありません。 – sebszyller