AsyncOperation<T> 类
- java.
lang. Object - java.
util. concurrent. Future<T> - com.
microsoft. connecteddevices. AsyncOperation<T>
- com.
- java.
类型参数
- T
public class AsyncOperation
具有 T 类型的未来结果或可能的异常的操作。 此类是 Android API 级别 24 CompletableFuture 类的稍微简化版本
实现标准 Future 接口,并提供基本的延续功能。 有关如何使用此类的详细信息,请参阅 CompletableFuture。
CompletedableFuture 和 AsyncOperation 之间的重要区别如下:1。 AsyncOperation 的默认异步执行程序是 Executors.newCachedThreadPool(),而 CompletedableFuture 使用 ForkJoinPool.commonPool()。 2. AsyncOperation 缺少 obtrudeException 和 obtrudeValue 方法。
构造函数摘要
构造函数 | 说明 |
---|---|
AsyncOperation() |
创建新的 AsyncOperation |
方法摘要
修饰符和类型 | 方法和描述 |
---|---|
<U> Async |
_handleAsyncInternal(AsyncOperation.ResultBiFunction<? super T, ? super Throwable, ? extends U> action, Executor executor)
函数(handle(action)、handleAsync(action)和 handleAsync(action,Executor)的句柄三个是构建其他函数的最基本延续函数。 在此操作成功完成或异常后,将执行传入的操作,从而允许观察到先行结果和先行异常。 |
Async |
_whenCompleteAsyncInternal(AsyncOperation.ResultBiConsumer<? super T, ? super Throwable> action, Executor executor)
函数(whenComplete(action)、whenCompleteAsync(action)和 whenCompleteAsync(action,Executor)的 whenComplete 三重函数类似于句柄函数。 在此操作成功完成或异常后,将执行传入的操作,从而允许观察到先行结果和先行异常。 与句柄不同,操作的结果不会传播到依赖操作;它们观察到此阶段的异常/结果,而不是传入的操作结果 |
Async |
acceptEither( @NonNull AsyncOperation<? extends T> other, @NonNull AsyncOperation.ResultConsumer<? super T> action)
当此操作或传入的操作成功完成时,acceptE 三个函数在 ResultConsumer 中运行传递。 如果完成的操作异常,则返回的操作也会异常完成。 |
Async |
acceptEitherAsync( @NonNull AsyncOperation<? extends T> other, @NonNull AsyncOperation.ResultConsumer<? super T> action)
当此操作或传入的操作成功完成时,acceptE 三个函数在 ResultConsumer 中运行传递。 如果完成的操作异常,则返回的操作也会异常完成。 |
Async |
acceptEitherAsync( @NonNull AsyncOperation<? extends T> other, AsyncOperation.ResultConsumer<? super T> action, @NonNull Executor executor)
当此操作或传入的操作成功完成时,acceptE 三个函数在 ResultConsumer 中运行传递。 如果完成的操作异常,则返回的操作也会异常完成。 |
Async |
allOf(@NonNull AsyncOperation<?>... operations)
创建一个操作,该操作将在所有传递的操作完成时完成。 |
Async |
anyOf(@NonNull AsyncOperation<?>... operations)
创建一个操作,该操作将在任何传递的操作完成时完成。 |
<U> Async |
applyToEither( @NonNull AsyncOperation<? extends T> other, @NonNull AsyncOperation.ResultFunction<? super T, U> action)
当此操作或传入的操作成功完成时,applyToE 三个函数运行在 ResultFunction 中传递的函数。 如果完成的操作异常,则返回的操作也会异常完成。 |
<U> Async |
applyToEitherAsync( @NonNull AsyncOperation<? extends T> other, @NonNull AsyncOperation.ResultFunction<? super T, U> action)
当此操作或传入的操作成功完成时,applyToE 三个函数运行在 ResultFunction 中传递的函数。 如果完成的操作异常,则返回的操作也会异常完成。 |
<U> Async |
applyToEitherAsync(@NonNull AsyncOperation<? extends T> other, @NonNull AsyncOperation.ResultFunction<? super T, U> action, @NonNull Executor executor)
当此操作或传入的操作成功完成时,applyToE 三个函数运行在 ResultFunction 中传递的函数。 如果完成的操作异常,则返回的操作也会异常完成。 |
boolean |
cancel(boolean mayInterruptIfRunning)
尝试取消未来并停止等待结果。 取消 AsyncOperation 会导致任何等待未来通过 get() 的线程立即收到 CancellationException。 操作执行不会中断,但取消调用的任何最终结果将被忽略。 |
final void |
complete(T value)
使用给定值完成此操作。 |
static<U> Async |
completedFuture(U value)
创建已使用给定值完成的操作 |
final void |
completeExceptionally(@NonNull Throwable ex)
设置在检索未来值时将引发的异常,并标记将来完成。 |
Async |
exceptionally(@NonNull AsyncOperation.ResultFunction<Throwable, ? extends T> action)
允许附加仅在此操作完成异常的情况下运行的延续。 请注意,没有异常的 *async* 变体,因此该操作不应长时间运行,因为它可能会阻止已完成此操作的线程或调用线程(在已完成的操作的情况下)。 |
T |
get()
获取将来的值,如有必要,请等待,直到将来完成。 |
T |
get(long timeout, @NonNull TimeUnit unit)
尝试获取将来的值,如有必要,请等待,直到将来完成或超时。 |
final T |
getNow(T valueIfAbsent)
获取操作的值,如果操作尚未完成,则立即返回传入的值。 |
int |
getNumberOfDependents()
获取依赖于此操作的估计操作数。 这不适用于同步/计划目的。 |
<U> Async |
handle(@NonNull AsyncOperation.ResultBiFunction<? super T, ? super Throwable, ? extends U> action)
函数(handle(action)、handleAsync(action)和 handleAsync(action,Executor)的句柄三个是构建其他函数的最基本延续函数。 在此操作成功完成或异常后,将执行传入的操作,从而允许观察到先行结果和先行异常。 |
<U> Async |
handleAsync(@NonNull AsyncOperation.ResultBiFunction<? super T, ? super Throwable, ? extends U> action)
函数(handle(action)、handleAsync(action)和 handleAsync(action,Executor)的句柄三个是构建其他函数的最基本延续函数。 在此操作成功完成或异常后,将执行传入的操作,从而允许观察到先行结果和先行异常。 |
<U> Async |
handleAsync( @NonNull AsyncOperation.ResultBiFunction<? super T, ? super Throwable, ? extends U> action, @NonNull Executor executor)
函数(handle(action)、handleAsync(action)和 handleAsync(action,Executor)的句柄三个是构建其他函数的最基本延续函数。 在此操作成功完成或异常后,将执行传入的操作,从而允许观察到先行结果和先行异常。 |
boolean |
isCancelled()
检查将来是否已成功取消。 |
boolean |
isCompletedExceptionally()
检查操作是否以任何异常方式完成(取消或 completeExceptionally) |
boolean |
isDone()
检查将来是否完成。 在设置结果或设置异常时,将来完成。 |
T |
join()
获取将来的值,如有必要,请等待,直到将来完成。 与 get() 联接不同,如果在完成此操作的过程中发生任何异常,则引发 CompletionException |
Async |
runAfterBoth(@NonNull AsyncOperation<?> other, @NonNull Runnable action)
当此操作和传入的操作成功完成时,函数的 runAfterBoth 三重奏将运行在 Runnable 中传递。 如果任一操作异常完成,则返回的操作也会异常完成。 |
Async |
runAfterBothAsync(@NonNull AsyncOperation<?> other, @NonNull Runnable action)
当此操作和传入的操作成功完成时,函数的 runAfterBoth 三重奏将运行在 Runnable 中传递。 如果任一操作异常完成,则返回的操作也会异常完成。 |
Async |
runAfterBothAsync(@NonNull AsyncOperation<?> other, @NonNull Runnable action, @NonNull Executor executor)
当此操作和传入的操作成功完成时,函数的 runAfterBoth 三重奏将运行在 Runnable 中传递。 如果任一操作异常完成,则返回的操作也会异常完成。 |
Async |
runAfterEither(@NonNull AsyncOperation<?> other, @NonNull Runnable action)
当此操作或传入的操作成功完成时,runAfterE 三个函数运行在 Runnable 中传递的函数。 如果完成的操作异常,则返回的操作也会异常完成。 |
Async |
runAfterEitherAsync(@NonNull AsyncOperation<?> other, @NonNull Runnable action)
当此操作或传入的操作成功完成时,runAfterE 三个函数运行在 Runnable 中传递的函数。 如果完成的操作异常,则返回的操作也会异常完成。 |
Async |
runAfterEitherAsync( @NonNull AsyncOperation<?> other, @NonNull Runnable action, @NonNull Executor executor)
当此操作或传入的操作成功完成时,runAfterE 三个函数运行在 Runnable 中传递的函数。 如果完成的操作异常,则返回的操作也会异常完成。 |
Async |
runAsync(@NonNull Runnable runnable)
创建将在默认执行程序上运行传入的 Runnable 的操作 |
Async |
runAsync(@NonNull Runnable runnable, @NonNull Executor executor)
创建一个操作,该操作将在传入的执行程序上运行传入的 Runnable |
static<U> Async |
supplyAsync(@NonNull AsyncOperation.Supplier<U> supplier)
创建一个操作,该操作将使用默认执行程序从供应商获取值 |
static<U> Async |
supplyAsync(@NonNull AsyncOperation.Supplier<U> supplier, @NonNull Executor executor)
创建一个操作,该操作将使用传入的执行程序从供应商那里获取值 |
Async |
thenAccept(@NonNull ResultConsumer<? super T> action)
函数 (thenAccept(action)、thenAcceptAsync(action)和 thenAcceptAsync(action,Executor)的 thenAccept 三个函数在此操作成功完成后在 ResultConsumer 中运行传递。 |
Async |
thenAcceptAsync(@NonNull ResultConsumer<? super T> action)
函数 (thenAccept(action)、thenAcceptAsync(action)和 thenAcceptAsync(action,Executor)的 thenAccept 三个函数在此操作成功完成后在 ResultConsumer 中运行传递。 |
Async |
thenAcceptAsync(@NonNull ResultConsumer<? super T> action, @NonNull Executor executor)
函数 (thenAccept(action)、thenAcceptAsync(action)和 thenAcceptAsync(action,Executor)的 thenAccept 三个函数在此操作成功完成后在 ResultConsumer 中运行传递。 |
<U> Async |
thenAcceptBoth( @NonNull AsyncOperation<? extends U> other, @NonNull AsyncOperation.ResultBiConsumer<? super T, ? super U> action)
然后,当此操作和传入的操作成功完成时,函数的 thenAcceptBoth 三个函数在 ResultConsumer 中运行传递。 如果任一操作异常完成,则返回的操作也会异常完成。 |
<U> Async |
thenAcceptBothAsync( @NonNull AsyncOperation<? extends U> other, @NonNull AsyncOperation.ResultBiConsumer<? super T, ? super U> action)
然后,当此操作和传入的操作成功完成时,函数的 thenAcceptBoth 三个函数在 ResultConsumer 中运行传递。 如果任一操作异常完成,则返回的操作也会异常完成。 |
<U> Async |
thenAcceptBothAsync(@NonNull AsyncOperation<? extends U> other, @NonNull AsyncOperation.ResultBiConsumer<? super T, ? super U> action, @NonNull Executor executor)
然后,当此操作和传入的操作成功完成时,函数的 thenAcceptBoth 三个函数在 ResultConsumer 中运行传递。 如果任一操作异常完成,则返回的操作也会异常完成。 |
<U> Async |
thenApply(@NonNull ResultFunction<? super T, ? extends U> action)
然后,函数(thenApplyAsync(action)、thenApplyAsync(action)和 thenApplyAsync(action,Executor)的 thenApply 三重函数在此操作成功完成时运行传入的 ResultFunction。 |
<U> Async |
thenApplyAsync(@NonNull ResultFunction<? super T, ? extends U> action)
然后,函数(thenApplyAsync(action)、thenApplyAsync(action)和 thenApplyAsync(action,Executor)的 thenApply 三重函数在此操作成功完成时运行传入的 ResultFunction。 |
<U> Async |
thenApplyAsync(@NonNull ResultFunction<? super T, ? extends U> action, @NonNull Executor executor)
然后,函数(thenApplyAsync(action)、thenApplyAsync(action)和 thenApplyAsync(action,Executor)的 thenApply 三重函数在此操作成功完成时运行传入的 ResultFunction。 |
<U, V> Async |
thenCombine( @NonNull AsyncOperation<? extends U> other, @NonNull AsyncOperation.ResultBiFunction<? super T, ? super U, ? extends V> action)
当此操作和传入的操作成功完成时,functions 的 thenCombine 三个函数运行传入的 ResultFunction。 如果任一操作异常完成,则返回的操作也会异常完成。 |
<U, V> Async |
thenCombineAsync( @NonNull AsyncOperation<? extends U> other, @NonNull AsyncOperation.ResultBiFunction<? super T, ? super U, ? extends V> action)
当此操作和传入的操作成功完成时,functions 的 thenCombine 三个函数运行传入的 ResultFunction。 如果任一操作异常完成,则返回的操作也会异常完成。 |
<U, V> Async |
thenCombineAsync(@NonNull AsyncOperation<? extends U> other, @NonNull AsyncOperation.ResultBiFunction<? super T, ? super U, ? extends V> action, @NonNull Executor executor)
当此操作和传入的操作成功完成时,functions 的 thenCombine 三个函数运行传入的 ResultFunction。 如果任一操作异常完成,则返回的操作也会异常完成。 |
<U> Async |
thenCompose(@NonNull AsyncOperation.ResultFunction<? super T, ? extends AsyncOperation<U>> action)
然后,当此操作成功完成时,函数的 thenCompose 三个函数运行传入的 ResultFunction。 ResultFunction 返回 AsyncOperation<T>,此调用的返回操作返回 AsyncOperation<T<T<,而不是 AsyncOperation<AsyncOperation>>T |
<U> Async |
thenComposeAsync(@NonNull AsyncOperation.ResultFunction<? super T, ? extends AsyncOperation<U>> action)
然后,当此操作成功完成时,函数的 thenCompose 三个函数运行传入的 ResultFunction。 ResultFunction 返回 AsyncOperation<T>,此调用的返回操作返回 AsyncOperation<T<T<,而不是 AsyncOperation<AsyncOperation>>T |
<U> Async |
thenComposeAsync(AsyncOperation.ResultFunction<? super T, ? extends AsyncOperation<U>> action, Executor executor)
然后,当此操作成功完成时,函数的 thenCompose 三个函数运行传入的 ResultFunction。 ResultFunction 返回 AsyncOperation<T>,此调用的返回操作返回 AsyncOperation<T<T<,而不是 AsyncOperation<AsyncOperation>>T |
Async |
thenRun(@NonNull Runnable action)
然后运行三个函数(thenRun(action)、thenRunAsync(action),然后RunAsync(action,Executor))在此操作成功完成时在 Runnable 中传递。 |
Async |
thenRunAsync(@NonNull Runnable action)
然后运行三个函数(thenRun(action)、thenRunAsync(action),然后RunAsync(action,Executor))在此操作成功完成时在 Runnable 中传递。 |
Async |
thenRunAsync(@NonNull Runnable action, @NonNull Executor executor)
然后运行三个函数(thenRun(action)、thenRunAsync(action),然后RunAsync(action,Executor))在此操作成功完成时在 Runnable 中传递。 |
Async |
whenComplete(@NonNull AsyncOperation.ResultBiConsumer<? super T, ? super Throwable> action)
函数(whenComplete(action)、whenCompleteAsync(action)和 whenCompleteAsync(action,Executor)的 whenComplete 三重函数类似于句柄函数。 在此操作成功完成或异常后,将执行传入的操作,从而允许观察到先行结果和先行异常。 与句柄不同,操作的结果不会传播到依赖操作;它们观察到此阶段的异常/结果,而不是传入的操作结果 |
Async |
whenCompleteAsync(@NonNull AsyncOperation.ResultBiConsumer<? super T, ? super Throwable> action)
函数(whenComplete(action)、whenCompleteAsync(action)和 whenCompleteAsync(action,Executor)的 whenComplete 三重函数类似于句柄函数。 在此操作成功完成或异常后,将执行传入的操作,从而允许观察到先行结果和先行异常。 与句柄不同,操作的结果不会传播到依赖操作;它们观察到此阶段的异常/结果,而不是传入的操作结果 |
Async |
whenCompleteAsync( @NonNull AsyncOperation.ResultBiConsumer<? super T, ? super Throwable> action, @NonNull Executor executor)
函数(whenComplete(action)、whenCompleteAsync(action)和 whenCompleteAsync(action,Executor)的 whenComplete 三重函数类似于句柄函数。 在此操作成功完成或异常后,将执行传入的操作,从而允许观察到先行结果和先行异常。 与句柄不同,操作的结果不会传播到依赖操作;它们观察到此阶段的异常/结果,而不是传入的操作结果 |
构造函数详细信息
AsyncOperation
public AsyncOperation()
创建新的 AsyncOperation
方法详细信息
_handleAsyncInternal
protected AsyncOperation _handleAsyncInternal(AsyncOperation.ResultBiFunction action, Executor executor)
函数(handle(action)、handleAsync(action)和 handleAsync(action,Executor)的句柄三个是构建其他函数的最基本延续函数。 在此操作成功完成或异常后,将执行传入的操作,从而允许观察到先行结果和先行异常。
参数:
返回:
_whenCompleteAsyncInternal
protected AsyncOperation
函数(whenComplete(action)、whenCompleteAsync(action)和 whenCompleteAsync(action,Executor)的 whenComplete 三重函数类似于句柄函数。 在此操作成功完成或异常后,将执行传入的操作,从而允许观察到先行结果和先行异常。 与句柄不同,操作的结果不会传播到依赖操作;它们观察到此阶段的异常/结果,而不是传入的操作结果
参数:
返回:
acceptEither
public AsyncOperation
当此操作或传入的操作成功完成时,acceptE 三个函数在 ResultConsumer 中运行传递。 如果完成的操作异常,则返回的操作也会异常完成。
参数:
返回:
acceptEitherAsync
public AsyncOperation
当此操作或传入的操作成功完成时,acceptE 三个函数在 ResultConsumer 中运行传递。 如果完成的操作异常,则返回的操作也会异常完成。
参数:
返回:
acceptEitherAsync
public AsyncOperation
当此操作或传入的操作成功完成时,acceptE 三个函数在 ResultConsumer 中运行传递。 如果完成的操作异常,则返回的操作也会异常完成。
参数:
返回:
allOf
public static AsyncOperation
创建一个操作,该操作将在所有传递的操作完成时完成。
参数:
返回:
anyOf
public static AsyncOperation