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 Дмитрий Рябов <[email protected]> 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 <[email protected]>:
>
> > 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 Дмитрий Рябов <[email protected]>
> > 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 <[email protected]>:
> > >
> > > > 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 <[email protected]>:
> > >
> > > > 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