ich meine Play
App habe, und ich will von mir Art von Einzigartigkeit Validierung implementieren, verwende ich Slick
, so ist es natürlich, dass ich einen einfachen sum(1) where
Anruf tun und wenn die count
mehr als Null gesetzt ich den Fehler meines case class object
. Also kann ich mir die Problemumgehung nicht vorstellen, um Await.result
auf meiner DB-Abfrage zu vermeiden, weil ich den Fehler in der aktuellen Zeit einstellen muss.Wie Avait.result zu vermeiden?
Aber ich jetzt, dass Await.result
ist wirklich schlechte Praxis, irgendwelche Vorschläge?
db.run(query.result) map { response =>
//do whatever you want with the response
}
In diesem Fall, dass Sie die Antwort erhalten, aber es blockiert nicht als Await.result
ist:
ja, sicher, aber lassen Sie uns sagen, ich muss Validierung durchführen, wie: Anwesenheitsvalidierung + Anwesenheitsvalidierung + Eindeutigkeit Validierung + Eindeutigkeitsprüfung So kann ich nicht den Weg sehen, diese 'Future' Stuff Kette zu machen Hier sind Die ersten beiden werden 'Boolean' Typ, und wenn ich map verwenden, wird dieser' Future [Boolean] ', ich kann nicht die Lösung für diese – dsounded
In der Karte die Antwort ist nicht von Typ Future [Boolean] aber Boolean. Sie können also alle erforderlichen Prüfungen durchführen und danach einen Future [Boolean] zurückgeben. Poste deinen Code, wenn ich dir eine reale Situation erklären soll. – Simon
https://pastebin.com/ASssHyvN dies ist minimal-Code, der das Problem zeigen sollte, wie Sie aktuelle Implementierung verwendet 'Await.result' sehen – dsounded