2013-04-11 9 views
6

Supponiamo di dover eseguire alcune attività parallele in Scala. Ogni attività esegue alcune chiamate di blocco (ad esempio Process.waitFor). Ora mi piacerebbe aspettare fino al completamento di una qualsiasi delle attività.Attendi uno qualsiasi dei futuri Futures in Scala?

Come ho capito, dovrei usare Scala Future per completare l'operazione. C'è qualche API in Scala per aspettare fino al termine di uno dei dati Futures?

risposta

13

C'è metodo build-in per fare questo:

Future.firstCompletedOf(yourFutures) 

from the doc:

Restituisce un futuro al risultato del primo futuro nell'elenco che è completata.

Nota che questo non sarebbe interrompere tutti gli altri futuri in modo da avere la cancellazione da soli, se avete bisogno di.