本文整理了Java中eu.toolchain.async.AsyncFuture.onDone()
方法的一些代码示例,展示了AsyncFuture.onDone()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。AsyncFuture.onDone()
方法的具体详情如下:
包路径:eu.toolchain.async.AsyncFuture
类名称: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 {
内容来源于网络,如有侵权,请联系作者删除!