+1 to Alex, this is something external to IgniteFuture. Should Ignite was implemented in .NET, we could have add proposed feature it using extension methods. But (un)fortunately Ignite is Java-based :-)
On Mon, Mar 27, 2017 at 4:06 PM, Alexey Goncharuk < alexey.goncha...@gmail.com> wrote: > Sergei, > > Why should this method be a part of the future API? The only implementation > will do "return func(this);" > > I can achieve the same result the following way: > rx(compute.runAsync(runnable)).timeout(5_000).subscribe(); > > > > 2017-03-27 15:54 GMT+03:00 Sergei Egorov <bsid...@gmail.com>: > > > Take a look at my initial code. > > > > public <T> IgniteFuture<T> chain(IgniteClosure<? super > > IgniteFuture<V>, T> doneCb); > > > > vs > > > > public <R> R to(IgniteClosure<? super IgniteFuture<V>, R> transformer); > > > > > > The result of "chain" is IgniteFuture. > > > > The result of "to" is the object returned from transformer. It would > > be CompletableFuture, Rx's Observable, Reactor's Mono, etc... > > > > > > On Mon, Mar 27, 2017 at 3:18 PM Дмитрий Рябов <somefire...@gmail.com> > > wrote: > > > > > Em... When you get result of your future, closure will produce new > future > > > with completely different type. > > > > > > 2017-03-27 13:43 GMT+03:00 Sergei Egorov <bsid...@gmail.com>: > > > > > > > It doesn't :) > > > > > > > > It returns another IgniteFuture where I want to transform it to > > > completely > > > > different type. > > > > > > > > On Mon, Mar 27, 2017 at 1:41 PM Дмитрий Рябов <somefire...@gmail.com > > > > > > wrote: > > > > > > > > > IgniteFuture have method > > > > > > > > > > public <T> IgniteFuture<T> chain(IgniteClosure<? super > > IgniteFuture<V>, > > > > T> > > > > > doneCb); > > > > > > > > > > which do this. > > > > > > > > > > 2017-03-27 13:30 GMT+03:00 Sergei Egorov <bsid...@gmail.com>: > > > > > > > > > > > Hi! > > > > > > > > > > > > Would be nice if igniteFuture would provide a small but very > usable > > > > > method: > > > > > > > > > > > > public <R> R to(Function<IgniteFuture<T>, R> transformer) > > > > > > > > > > > > it will allow to chain it like: > > > > > > > > > > > > compute.runAsync(runnable).to(rx()).timeout(5_000). > subscribe() > > > > > > > > > > > > Where rx() is just a static function with something like: > > > > > > > > > > > > public static <T> Function<IgniteFuture<T>, Observable<T>> > rx() > > > > > > > > > > > > > > > > > > WDYT? > > > > > > > > > > > > > > > > > > > > > 2017-03-27 13:30 GMT+03:00 Sergei Egorov <bsid...@gmail.com>: > > > > > > > > > > > Hi! > > > > > > > > > > > > Would be nice if igniteFuture would provide a small but very > usable > > > > > method: > > > > > > > > > > > > public <R> R to(Function<IgniteFuture<T>, R> transformer) > > > > > > > > > > > > it will allow to chain it like: > > > > > > > > > > > > compute.runAsync(runnable).to(rx()).timeout(5_000). > subscribe() > > > > > > > > > > > > Where rx() is just a static function with something like: > > > > > > > > > > > > public static <T> Function<IgniteFuture<T>, Observable<T>> > rx() > > > > > > > > > > > > > > > > > > WDYT? > > > > > > > > > > > > > > > > > > > > >