+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?
> > > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to