eu.toolchain.async.AsyncFuture.onDone()方法的使用及代码示例

x33g5p2x  于2022-01-17 转载在 其他  
字(6.6k)|赞(0)|评价(0)|浏览(100)

本文整理了Java中eu.toolchain.async.AsyncFuture.onDone()方法的一些代码示例,展示了AsyncFuture.onDone()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。AsyncFuture.onDone()方法的具体详情如下:
包路径:eu.toolchain.async.AsyncFuture
类名称:AsyncFuture
方法名:onDone

AsyncFuture.onDone介绍

[英]Register a listener that is called on all three types of events for this future; resolved, failed, and cancelled.
[中]注册一个监听器,该监听器在将来的所有三种类型的事件中都被调用;已解决、失败和取消。

代码示例

代码示例来源:origin: spotify/ffwd

private <T> Observable<T> toObservable(final AsyncFuture<T> future) {
  return Observable.create(observer -> {
    future.onDone(new FutureDone<T>() {
      @Override
      public void failed(final Throwable throwable) throws Exception {
        observer.onError(throwable);
      }
      @Override
      public void resolved(final T v) throws Exception {
        observer.onNext(v);
        observer.onCompleted();
      }
      @Override
      public void cancelled() throws Exception {
        observer.onCompleted();
      }
    });
  });
}

代码示例来源:origin: eu.toolchain.async/tiny-async-core

private void setupNext(final Callable<? extends AsyncFuture<? extends S>> next) {
  final AsyncFuture<? extends S> f;
  pending.incrementAndGet();
  try {
    f = next.call();
  } catch (final Exception e) {
    failed(e);
    return;
  }
  f.onDone(this);
}

代码示例来源:origin: eu.toolchain.async/tiny-async-core

protected <C> AsyncFuture<Void> doCollectAndDiscard(
  Collection<? extends AsyncFuture<C>> futures
) {
  final ResolvableFuture<Void> target = future();
  final FutureDone<C> done = new CollectAndDiscardHelper<>(futures.size(), target);
  for (final AsyncFuture<C> q : futures) {
    q.onDone(done);
  }
  bindSignals(target, futures);
  return target;
}

代码示例来源:origin: eu.toolchain.async/tiny-async-core

protected <C, T> AsyncFuture<T> doCollect(
  final Collection<? extends AsyncFuture<? extends C>> futures,
  final Collector<? super C, ? extends T> collector
) {
  final ResolvableFuture<T> target = future();
  final CollectHelper<? super C, ? extends T> done =
    new CollectHelper<>(futures.size(), collector, futures, target);
  for (final AsyncFuture<? extends C> q : futures) {
    q.onDone(done);
  }
  bindSignals(target, futures);
  return target;
}

代码示例来源:origin: eu.toolchain.async/tiny-async-core

protected <T, C> AsyncFuture<T> doCollect(
  final Collection<? extends AsyncFuture<? extends C>> futures,
  final StreamCollector<? super C, ? extends T> collector
) {
  final ResolvableFuture<T> target = future();
  final CollectStreamHelper<? super C, ? extends T> done =
    new CollectStreamHelper<>(caller, futures.size(), collector, target);
  for (final AsyncFuture<? extends C> q : futures) {
    q.onDone(done);
  }
  bindSignals(target, futures);
  return target;
}

代码示例来源:origin: eu.toolchain.async/tiny-async-core

@Override
public void failed(Throwable cause) throws Exception {
  final AsyncFuture<? extends T> future;
  try {
    future = transform.transform(cause);
  } catch (final Exception e) {
    e.addSuppressed(cause);
    target.fail(e);
    return;
  }
  future.onDone(new FutureDone<T>() {
    @Override
    public void failed(Throwable e) throws Exception {
      target.fail(e);
    }
    @Override
    public void resolved(T result) throws Exception {
      target.resolve(result);
    }
    @Override
    public void cancelled() throws Exception {
      target.cancel();
    }
  });
}

代码示例来源:origin: eu.toolchain.async/tiny-async-core

public void next() {
  if (future.isDone()) {
    throw new IllegalStateException("Target future is done");
  }
  final AsyncFuture<? extends T> result;
  try {
    result = action.call();
  } catch (final Exception e) {
    // inner catch, since the policy might be user-provided.
    try {
      failed(e);
    } catch (final Exception inner) {
      inner.addSuppressed(e);
      future.fail(inner);
    }
    return;
  }
  if (result == null) {
    future.fail(new IllegalStateException("Retry action returned null"));
    return;
  }
  result.onDone(this);
}

代码示例来源:origin: eu.toolchain.async/tiny-async-core

@Override
public <T> AsyncFuture<T> error(
  final AsyncFuture<T> future, final LazyTransform<Throwable, ? extends T> transform
) {
  final ResolvableFuture<T> target = future();
  future.onDone(new FailedLazyTransformHelper<T>(transform, target));
  return target.bind(future);
}

代码示例来源:origin: eu.toolchain.async/tiny-async-core

@Override
  public void cancelled() throws Exception {
    final AsyncFuture<? extends T> future;

    try {
      future = transform.transform(null);
    } catch (Exception e) {
      target.fail(e);
      return;
    }

    future.onDone(new FutureDone<T>() {
      @Override
      public void failed(Throwable e) throws Exception {
        target.fail(e);
      }

      @Override
      public void resolved(T result) throws Exception {
        target.resolve(result);
      }

      @Override
      public void cancelled() throws Exception {
        target.cancel();
      }
    });
  }
}

代码示例来源:origin: eu.toolchain.async/tiny-async-core

@Override
public <C, T> AsyncFuture<T> transform(
  final AsyncFuture<C> future, final Transform<? super C, ? extends T> transform
) {
  final ResolvableFuture<T> target = future();
  future.onDone(new ResolvedTransformHelper<C, T>(transform, target));
  return target.bind(future);
}

代码示例来源:origin: eu.toolchain.async/tiny-async-core

@Override
public <T> AsyncFuture<T> cancelled(
  final AsyncFuture<T> future, final LazyTransform<Void, ? extends T> transform
) {
  final ResolvableFuture<T> target = future();
  future.onDone(new CancelledLazyTransformHelper<T>(transform, target));
  return target.bind(future);
}

代码示例来源:origin: eu.toolchain.async/tiny-async-core

@Override
public void resolved(S result) throws Exception {
  final AsyncFuture<? extends T> t;
  try {
    t = transform.transform(result);
  } catch (Exception e) {
    failed(e);
    return;
  }
  t.onDone(new FutureDone<T>() {
    @Override
    public void failed(Throwable e) throws Exception {
      target.fail(e);
    }
    @Override
    public void resolved(T result) throws Exception {
      target.resolve(result);
    }
    @Override
    public void cancelled() throws Exception {
      target.cancel();
    }
  });
}

代码示例来源:origin: eu.toolchain.async/tiny-async-core

@Override
public <C, T> AsyncFuture<T> transform(
  AsyncFuture<C> future, LazyTransform<? super C, ? extends T> transform
) {
  final ResolvableFuture<T> target = future();
  future.onDone(new ResolvedLazyTransformHelper<C, T>(transform, target));
  return target.bind(future);
}

代码示例来源:origin: eu.toolchain.async/tiny-async-core

@Override
public <T> AsyncFuture<T> error(
  final AsyncFuture<T> future, final Transform<Throwable, ? extends T> transform
) {
  final ResolvableFuture<T> target = future();
  future.onDone(new FailedTransformHelper<T>(transform, target));
  return target.bind(future);
}

代码示例来源:origin: eu.toolchain.async/tiny-async-core

@Override
public <T> AsyncFuture<T> cancelled(
  final AsyncFuture<T> future, final Transform<Void, ? extends T> transform
) {
  final ResolvableFuture<T> target = future();
  future.onDone(new CancelledTransformHelper<T>(transform, target));
  return target.bind(future);
}

代码示例来源:origin: eu.toolchain.async/tiny-async-core

return null;
}).onDone(new FutureDone<Void>() {
  @Override
  public void failed(Throwable cause) throws Exception {

相关文章