Vincent Zou Vincent Zou - 11 months ago 53
Java Question

How can I make A future of future into one future object?

Env: Akka 2.1, scala version 2.10.M6, JDK 1.7,u5

Now is my problem:
I have:

future1 = Futures.future(new Callable<Future<object>>(){...});
future2 = ? extends Object;
Future.sequence(future1, future2).onComplete(...)

now in first line, I have a future of Future of object, is there any way to convert it into a Future while not blocking my current thread?

Is there any method in akka? As far as I checked, I havn't found any yet...
First time to have a post....Sry for bad format and organize... :~P

Answer Source

Short answer (English): flatMap dat sh!t

Shorter answer (Scala):


Shortest answer: (Scala 2.12):


Long answer (Java):

flatMap(new Mapper<Future<X>>,Future<X>>() {
  @Override public Future<X> apply(final Future<X> f) { return f; }