Ich verwende scala.concurrent.ExecutionContext.Implicits.global
für alle Executoren von Future. Aber irgendwann mache ich ein einfaches Ding und will es nur nicht ändern Thread (nicht im Thread-Pool), damit es weiterhin unter dem aktuellen Thread läuft. Verwenden Sie Twitter Future
, wo eine Future.value
dies erreichen kann. Wie geht es Scala in Zukunft?Wie lässt sich scala's Future auf dem aktuellen Thread ausführen?
1
A
Antwort
2
können Sie tun:
Future.fromTry(Try { ... })
Es spielt keine ExecutionContext
erfordern und im Grunde wertet nur Ausdruck sofort und Wraps führen in der Zukunft.
Eigentlich ist es hier Implementierung ist:
def fromTry[T](result: Try[T]): Future[T] = Promise.fromTry(result).future
So scheint Future.value
direkte Entsprechung von Twitters zu sein.
Verwenden Sie auch Future.successful
, wenn Ihr Code keine Ausnahmen oder Future.failed
trow, wenn Sie bereits gescheiterte Zukunft erstellen möchten.
1
Das Äquivalent von twitter Future.value
in der Scala-Standardbibliothek ist Future.successful
.
Future.const
ist Future.fromTry
Future.exception
Future.failed
ist
Verwandte Themen
- 1. Wie alle laufenden Threads außer dem aktuellen Thread zu stoppen?
- 2. Wie man einen Autor Thread verhungern lässt
- 3. Wie sich Clojures Agenten mit Scalas Schauspielern vergleichen?
- 4. Wie lässt sich ein LinearLayout scrollbar machen?
- 5. Ausführen von Code auf dem Hauptthread von einem sekundären Thread?
- 6. Haskell entspricht Scalas groupBy
- 7. Wie lässt sich der Radioknopftext klickbar machen?
- 8. Wie lässt sich SilverLight progressbar gut aussehen?
- 9. Wie lässt sich eine Panel-Steuerung ansprechen?
- 10. Wie öffne ich eine Domain basierend auf dem aktuellen Land, in dem sich das Gerät befindet?
- 11. Wie lässt sich eine UIPickerView-Komponente umbrechen?
- 12. Wie lässt sich Wasser in GML einfüllen?
- 13. Wie lässt sich ein Bild blinken?
- 14. Wie lässt sich in CasperJS warten?
- 15. Wie lässt sich TabControl einfach neu anordnen?
- 16. Wie lässt sich der letzte Buchstabe blinken?
- 17. Ausführen von DAG wie Operationen in Scala Future
- 18. Kann ich gc collect auf einem anderen Thread als dem Haupt-Thread in Unity3D ausführen?
- 19. Taskfortsetzung auf dem UI-Thread
- 20. Wie man raspbian jessie auf dem Emulator laufen lässt?
- 21. Scalas implicitNotFound Annotation präzisieren
- 22. Starten eines Threads nach dem aktuellen Thread beendet
- 23. Wie keine Sitzung für aktuellen Thread
- 24. Beobachten zurück zum aktuellen Thread
- 25. ListenableFuture zu scala Future
- 26. ListenableFuture zu scala Future
- 27. Bluetooth lässt sich nicht auf AOSP 6.0 + Nexus 5X
- 28. Wie lässt sich MagicMock wie ein Diktat verhalten?
- 29. Wie funktioniert Future in Vert.x?
- 30. Wie lässt sich eine JavaScript-Funktion bei Auswahl aus diesem Bootstrap-Menü ausführen?
Wenn Sie einfache Dinge tun, müssen Sie keine Zukunft überhaupt. –
@EndeNeu, die einfache Sache ist nur ein Zweig der Arbeiten. Ich muss eine Zukunft konstruieren, um sicherzustellen, dass das Endergebnis "Zukunft" ist. – LoranceChen
Sie können 'Future.successful' oder' Future.failed' tun, um eine Zukunft zu erhalten, die bereits "erledigt" ist. – Thilo