AsyncOperation<T> 类

  • java.lang.Object
    • java.util.concurrent.Future<T>
      • com.microsoft.connecteddevices.AsyncOperation<T>

类型参数

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> AsyncOperation<U> _handleAsyncInternal(AsyncOperation.ResultBiFunction<? super T, ? super Throwable, ? extends U> action, Executor executor)

函数(handle(action)、handleAsync(action)和 handleAsync(action,Executor)的句柄三个是构建其他函数的最基本延续函数。 在此操作成功完成或异常后,将执行传入的操作,从而允许观察到先行结果和先行异常。

AsyncOperation<T> _whenCompleteAsyncInternal(AsyncOperation.ResultBiConsumer<? super T, ? super Throwable> action, Executor executor)

函数(whenComplete(action)、whenCompleteAsync(action)和 whenCompleteAsync(action,Executor)的 whenComplete 三重函数类似于句柄函数。 在此操作成功完成或异常后,将执行传入的操作,从而允许观察到先行结果和先行异常。 与句柄不同,操作的结果不会传播到依赖操作;它们观察到此阶段的异常/结果,而不是传入的操作结果

AsyncOperation<Void> acceptEither( @NonNull AsyncOperation<? extends T> other, @NonNull AsyncOperation.ResultConsumer<? super T> action)

当此操作或传入的操作成功完成时,acceptE 三个函数在 ResultConsumer 中运行传递。 如果完成的操作异常,则返回的操作也会异常完成。

AsyncOperation<Void> acceptEitherAsync( @NonNull AsyncOperation<? extends T> other, @NonNull AsyncOperation.ResultConsumer<? super T> action)

当此操作或传入的操作成功完成时,acceptE 三个函数在 ResultConsumer 中运行传递。 如果完成的操作异常,则返回的操作也会异常完成。

AsyncOperation<Void> acceptEitherAsync( @NonNull AsyncOperation<? extends T> other, AsyncOperation.ResultConsumer<? super T> action, @NonNull Executor executor)

当此操作或传入的操作成功完成时,acceptE 三个函数在 ResultConsumer 中运行传递。 如果完成的操作异常,则返回的操作也会异常完成。

AsyncOperation<Void> allOf(@NonNull AsyncOperation<?>... operations)

创建一个操作,该操作将在所有传递的操作完成时完成。

AsyncOperation<Object> anyOf(@NonNull AsyncOperation<?>... operations)

创建一个操作,该操作将在任何传递的操作完成时完成。

<U> AsyncOperation<U> applyToEither( @NonNull AsyncOperation<? extends T> other, @NonNull AsyncOperation.ResultFunction<? super T, U> action)

当此操作或传入的操作成功完成时,applyToE 三个函数运行在 ResultFunction 中传递的函数。 如果完成的操作异常,则返回的操作也会异常完成。

<U> AsyncOperation<U> applyToEitherAsync( @NonNull AsyncOperation<? extends T> other, @NonNull AsyncOperation.ResultFunction<? super T, U> action)

当此操作或传入的操作成功完成时,applyToE 三个函数运行在 ResultFunction 中传递的函数。 如果完成的操作异常,则返回的操作也会异常完成。

<U> AsyncOperation<U> 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> AsyncOperation<U> completedFuture(U value)

创建已使用给定值完成的操作

final void completeExceptionally(@NonNull Throwable ex)

设置在检索未来值时将引发的异常,并标记将来完成。

AsyncOperation<T> 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> AsyncOperation<U> handle(@NonNull AsyncOperation.ResultBiFunction<? super T, ? super Throwable, ? extends U> action)

函数(handle(action)、handleAsync(action)和 handleAsync(action,Executor)的句柄三个是构建其他函数的最基本延续函数。 在此操作成功完成或异常后,将执行传入的操作,从而允许观察到先行结果和先行异常。

<U> AsyncOperation<U> handleAsync(@NonNull AsyncOperation.ResultBiFunction<? super T, ? super Throwable, ? extends U> action)

函数(handle(action)、handleAsync(action)和 handleAsync(action,Executor)的句柄三个是构建其他函数的最基本延续函数。 在此操作成功完成或异常后,将执行传入的操作,从而允许观察到先行结果和先行异常。

<U> AsyncOperation<U> 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

AsyncOperation<Void> runAfterBoth(@NonNull AsyncOperation<?> other, @NonNull Runnable action)

当此操作和传入的操作成功完成时,函数的 runAfterBoth 三重奏将运行在 Runnable 中传递。 如果任一操作异常完成,则返回的操作也会异常完成。

AsyncOperation<Void> runAfterBothAsync(@NonNull AsyncOperation<?> other, @NonNull Runnable action)

当此操作和传入的操作成功完成时,函数的 runAfterBoth 三重奏将运行在 Runnable 中传递。 如果任一操作异常完成,则返回的操作也会异常完成。

AsyncOperation<Void> runAfterBothAsync(@NonNull AsyncOperation<?> other, @NonNull Runnable action, @NonNull Executor executor)

当此操作和传入的操作成功完成时,函数的 runAfterBoth 三重奏将运行在 Runnable 中传递。 如果任一操作异常完成,则返回的操作也会异常完成。

AsyncOperation<Void> runAfterEither(@NonNull AsyncOperation<?> other, @NonNull Runnable action)

当此操作或传入的操作成功完成时,runAfterE 三个函数运行在 Runnable 中传递的函数。 如果完成的操作异常,则返回的操作也会异常完成。

AsyncOperation<Void> runAfterEitherAsync(@NonNull AsyncOperation<?> other, @NonNull Runnable action)

当此操作或传入的操作成功完成时,runAfterE 三个函数运行在 Runnable 中传递的函数。 如果完成的操作异常,则返回的操作也会异常完成。

AsyncOperation<Void> runAfterEitherAsync( @NonNull AsyncOperation<?> other, @NonNull Runnable action, @NonNull Executor executor)

当此操作或传入的操作成功完成时,runAfterE 三个函数运行在 Runnable 中传递的函数。 如果完成的操作异常,则返回的操作也会异常完成。

AsyncOperation<Void> runAsync(@NonNull Runnable runnable)

创建将在默认执行程序上运行传入的 Runnable 的操作

AsyncOperation<Void> runAsync(@NonNull Runnable runnable, @NonNull Executor executor)

创建一个操作,该操作将在传入的执行程序上运行传入的 Runnable

static<U> AsyncOperation<U> supplyAsync(@NonNull AsyncOperation.Supplier<U> supplier)

创建一个操作,该操作将使用默认执行程序从供应商获取值

static<U> AsyncOperation<U> supplyAsync(@NonNull AsyncOperation.Supplier<U> supplier, @NonNull Executor executor)

创建一个操作,该操作将使用传入的执行程序从供应商那里获取值

AsyncOperation<Void> thenAccept(@NonNull ResultConsumer<? super T> action)

函数 (thenAccept(action)、thenAcceptAsync(action)和 thenAcceptAsync(action,Executor)的 thenAccept 三个函数在此操作成功完成后在 ResultConsumer 中运行传递。

AsyncOperation<Void> thenAcceptAsync(@NonNull ResultConsumer<? super T> action)

函数 (thenAccept(action)、thenAcceptAsync(action)和 thenAcceptAsync(action,Executor)的 thenAccept 三个函数在此操作成功完成后在 ResultConsumer 中运行传递。

AsyncOperation<Void> thenAcceptAsync(@NonNull ResultConsumer<? super T> action, @NonNull Executor executor)

函数 (thenAccept(action)、thenAcceptAsync(action)和 thenAcceptAsync(action,Executor)的 thenAccept 三个函数在此操作成功完成后在 ResultConsumer 中运行传递。

<U> AsyncOperation<Void> thenAcceptBoth( @NonNull AsyncOperation<? extends U> other, @NonNull AsyncOperation.ResultBiConsumer<? super T, ? super U> action)

然后,当此操作和传入的操作成功完成时,函数的 thenAcceptBoth 三个函数在 ResultConsumer 中运行传递。 如果任一操作异常完成,则返回的操作也会异常完成。

<U> AsyncOperation<Void> thenAcceptBothAsync( @NonNull AsyncOperation<? extends U> other, @NonNull AsyncOperation.ResultBiConsumer<? super T, ? super U> action)

然后,当此操作和传入的操作成功完成时,函数的 thenAcceptBoth 三个函数在 ResultConsumer 中运行传递。 如果任一操作异常完成,则返回的操作也会异常完成。

<U> AsyncOperation<Void> thenAcceptBothAsync(@NonNull AsyncOperation<? extends U> other, @NonNull AsyncOperation.ResultBiConsumer<? super T, ? super U> action, @NonNull Executor executor)

然后,当此操作和传入的操作成功完成时,函数的 thenAcceptBoth 三个函数在 ResultConsumer 中运行传递。 如果任一操作异常完成,则返回的操作也会异常完成。

<U> AsyncOperation<U> thenApply(@NonNull ResultFunction<? super T, ? extends U> action)

然后,函数(thenApplyAsync(action)、thenApplyAsync(action)和 thenApplyAsync(action,Executor)的 thenApply 三重函数在此操作成功完成时运行传入的 ResultFunction。

<U> AsyncOperation<U> thenApplyAsync(@NonNull ResultFunction<? super T, ? extends U> action)

然后,函数(thenApplyAsync(action)、thenApplyAsync(action)和 thenApplyAsync(action,Executor)的 thenApply 三重函数在此操作成功完成时运行传入的 ResultFunction。

<U> AsyncOperation<U> thenApplyAsync(@NonNull ResultFunction<? super T, ? extends U> action, @NonNull Executor executor)

然后,函数(thenApplyAsync(action)、thenApplyAsync(action)和 thenApplyAsync(action,Executor)的 thenApply 三重函数在此操作成功完成时运行传入的 ResultFunction。

<U, V> AsyncOperation<V> thenCombine( @NonNull AsyncOperation<? extends U> other, @NonNull AsyncOperation.ResultBiFunction<? super T, ? super U, ? extends V> action)

当此操作和传入的操作成功完成时,functions 的 thenCombine 三个函数运行传入的 ResultFunction。 如果任一操作异常完成,则返回的操作也会异常完成。

<U, V> AsyncOperation<V> thenCombineAsync( @NonNull AsyncOperation<? extends U> other, @NonNull AsyncOperation.ResultBiFunction<? super T, ? super U, ? extends V> action)

当此操作和传入的操作成功完成时,functions 的 thenCombine 三个函数运行传入的 ResultFunction。 如果任一操作异常完成,则返回的操作也会异常完成。

<U, V> AsyncOperation<V> thenCombineAsync(@NonNull AsyncOperation<? extends U> other, @NonNull AsyncOperation.ResultBiFunction<? super T, ? super U, ? extends V> action, @NonNull Executor executor)

当此操作和传入的操作成功完成时,functions 的 thenCombine 三个函数运行传入的 ResultFunction。 如果任一操作异常完成,则返回的操作也会异常完成。

<U> AsyncOperation<U> thenCompose(@NonNull AsyncOperation.ResultFunction<? super T, ? extends AsyncOperation<U>> action)

然后,当此操作成功完成时,函数的 thenCompose 三个函数运行传入的 ResultFunction。 ResultFunction 返回 AsyncOperation<T>,此调用的返回操作返回 AsyncOperation<T<T<,而不是 AsyncOperation<AsyncOperation>>T

<U> AsyncOperation<U> thenComposeAsync(@NonNull AsyncOperation.ResultFunction<? super T, ? extends AsyncOperation<U>> action)

然后,当此操作成功完成时,函数的 thenCompose 三个函数运行传入的 ResultFunction。 ResultFunction 返回 AsyncOperation<T>,此调用的返回操作返回 AsyncOperation<T<T<,而不是 AsyncOperation<AsyncOperation>>T

<U> AsyncOperation<U> thenComposeAsync(AsyncOperation.ResultFunction<? super T, ? extends AsyncOperation<U>> action, Executor executor)

然后,当此操作成功完成时,函数的 thenCompose 三个函数运行传入的 ResultFunction。 ResultFunction 返回 AsyncOperation<T>,此调用的返回操作返回 AsyncOperation<T<T<,而不是 AsyncOperation<AsyncOperation>>T

AsyncOperation<Void> thenRun(@NonNull Runnable action)

然后运行三个函数(thenRun(action)、thenRunAsync(action),然后RunAsync(action,Executor))在此操作成功完成时在 Runnable 中传递。

AsyncOperation<Void> thenRunAsync(@NonNull Runnable action)

然后运行三个函数(thenRun(action)、thenRunAsync(action),然后RunAsync(action,Executor))在此操作成功完成时在 Runnable 中传递。

AsyncOperation<Void> thenRunAsync(@NonNull Runnable action, @NonNull Executor executor)

然后运行三个函数(thenRun(action)、thenRunAsync(action),然后RunAsync(action,Executor))在此操作成功完成时在 Runnable 中传递。

AsyncOperation<T> whenComplete(@NonNull AsyncOperation.ResultBiConsumer<? super T, ? super Throwable> action)

函数(whenComplete(action)、whenCompleteAsync(action)和 whenCompleteAsync(action,Executor)的 whenComplete 三重函数类似于句柄函数。 在此操作成功完成或异常后,将执行传入的操作,从而允许观察到先行结果和先行异常。 与句柄不同,操作的结果不会传播到依赖操作;它们观察到此阶段的异常/结果,而不是传入的操作结果

AsyncOperation<T> whenCompleteAsync(@NonNull AsyncOperation.ResultBiConsumer<? super T, ? super Throwable> action)

函数(whenComplete(action)、whenCompleteAsync(action)和 whenCompleteAsync(action,Executor)的 whenComplete 三重函数类似于句柄函数。 在此操作成功完成或异常后,将执行传入的操作,从而允许观察到先行结果和先行异常。 与句柄不同,操作的结果不会传播到依赖操作;它们观察到此阶段的异常/结果,而不是传入的操作结果

AsyncOperation<T> 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)的句柄三个是构建其他函数的最基本延续函数。 在此操作成功完成或异常后,将执行传入的操作,从而允许观察到先行结果和先行异常。

参数:

action - 完成此操作后将执行的函数
executor - 要对其执行函数的执行程序

返回:

一个新的异步操作,将基于传入操作的结果完成

_whenCompleteAsyncInternal

protected AsyncOperation _whenCompleteAsyncInternal(AsyncOperation.ResultBiConsumer action, Executor executor)

函数(whenComplete(action)、whenCompleteAsync(action)和 whenCompleteAsync(action,Executor)的 whenComplete 三重函数类似于句柄函数。 在此操作成功完成或异常后,将执行传入的操作,从而允许观察到先行结果和先行异常。 与句柄不同,操作的结果不会传播到依赖操作;它们观察到此阶段的异常/结果,而不是传入的操作结果

参数:

action - 完成此操作后将执行的函数
executor - 要对其执行函数的执行程序

返回:

一个新的异步操作,将基于传入操作的结果完成

acceptEither

public AsyncOperation acceptEither( @NonNull AsyncOperation other, @NonNull AsyncOperation.ResultConsumer action)

当此操作或传入的操作成功完成时,acceptE 三个函数在 ResultConsumer 中运行传递。 如果完成的操作异常,则返回的操作也会异常完成。

参数:

other - 将另一个操作“OR”组合在一起
action - 在任一操作完成后执行的 ResultConsumer

返回:

一个新的异步操作,将基于传入操作的结果完成

acceptEitherAsync

public AsyncOperation acceptEitherAsync( @NonNull AsyncOperation other, @NonNull AsyncOperation.ResultConsumer action)

当此操作或传入的操作成功完成时,acceptE 三个函数在 ResultConsumer 中运行传递。 如果完成的操作异常,则返回的操作也会异常完成。

参数:

other - 将另一个操作“OR”组合在一起
action - 在任一操作完成后执行的 ResultConsumer

返回:

一个新的异步操作,将基于传入操作的结果完成

acceptEitherAsync

public AsyncOperation acceptEitherAsync( @NonNull AsyncOperation other, AsyncOperation.ResultConsumer action, @NonNull Executor executor)

当此操作或传入的操作成功完成时,acceptE 三个函数在 ResultConsumer 中运行传递。 如果完成的操作异常,则返回的操作也会异常完成。

参数:

other - 将另一个操作“OR”组合在一起
action - 在任一操作完成后执行的 ResultConsumer
executor - 要对其执行函数的执行程序

返回:

一个新的异步操作,将基于传入操作的结果完成

allOf

public static AsyncOperation allOf(@NonNull AsyncOperation... operations)

创建一个操作,该操作将在所有传递的操作完成时完成。

参数:

operations - 一起“AND”的操作列表

返回:

一个新的异步操作,将在所有操作完成时完成

anyOf

public static AsyncOperation anyOf(@NonNull AsyncOperation... operations)

创建一个操作,该操作将在任何传递的操作完成时完成。

参数:

operations - 一起“OR”的操作列表

返回:

一个新的异步操作,将在任何操作完成时完成

applyToEither

public AsyncOperation applyToEither( @NonNull AsyncOperation other, @NonNull AsyncOperation.ResultFunction action)

当此操作或传入的操作成功完成时,applyToE 三个函数运行在 ResultFunction 中传递的函数。 如果完成的操作异常,则返回的操作也会异常完成。

参数:

other - 将另一个操作“OR”组合在一起
action - 完成任一操作后将执行的 ResultFunction

返回:

一个新的异步操作,将基于传入操作的结果完成

applyToEitherAsync

public AsyncOperation applyToEitherAsync( @NonNull AsyncOperation other, @NonNull AsyncOperation.ResultFunction action)

当此操作或传入的操作成功完成时,applyToE 三个函数运行在 ResultFunction 中传递的函数。 如果完成的操作异常,则返回的操作也会异常完成。

参数:

other - 将另一个操作“OR”组合在一起
action - 完成任一操作后将执行的 ResultFunction

返回:

一个新的异步操作,将基于传入操作的结果完成

applyToEitherAsync

public AsyncOperation applyToEitherAsync(@NonNull AsyncOperation other, @NonNull AsyncOperation.ResultFunction action, @NonNull Executor executor)

当此操作或传入的操作成功完成时,applyToE 三个函数运行在 ResultFunction 中传递的函数。 如果完成的操作异常,则返回的操作也会异常完成。

参数:

other - 将另一个操作“OR”组合在一起
action - 完成任一操作后将执行的 ResultFunction
executor - 要对其执行函数的执行程序

返回:

一个新的异步操作,将基于传入操作的结果完成

cancel

public boolean cancel(boolean mayInterruptIfRunning)

尝试取消未来并停止等待结果。

取消 AsyncOperation 会导致任何等待未来通过 get() 的线程立即收到 CancellationException。 操作执行不会中断,但取消调用的任何最终结果将被忽略。

参数:

mayInterruptIfRunning - 忽略,因为无法中断操作。

返回:

如果将来在完成之前被取消,则为 true;如果将来无法取消,则为 false,因为它已经完成。

complete

public final void complete(T value)

使用给定值完成此操作。

参数:

value - 操作的结果,或为成功但空的结果为 null。

completedFuture

public static static AsyncOperation completedFuture(U value)

创建已使用给定值完成的操作

参数:

value - 要完成操作的值

返回:

已完成的新异步操作

completeExceptionally

public final void completeExceptionally(@NonNull Throwable ex)

设置在检索未来值时将引发的异常,并标记将来完成。

参数:

ex - 可引发操作完成操作。

exceptionally

public AsyncOperation exceptionally(@NonNull AsyncOperation.ResultFunction action)

允许附加仅在此操作完成异常的情况下运行的延续。 请注意,没有异常的 *async* 变体,因此该操作不应长时间运行,因为它可能会阻止已完成此操作的线程或调用线程(在已完成的操作的情况下)。

参数:

action - 操作完成时要执行的操作异常。

get

public T get()

获取将来的值,如有必要,请等待,直到将来完成。

返回:

操作的结果,或为成功但空的结果为 null。

get

public T get(long timeout, @NonNull TimeUnit unit)

尝试获取将来的值,如有必要,请等待,直到将来完成或超时。

参数:

timeout
unit

返回:

结果,或为成功但为空的结果为 null。

getNow

public final T getNow(T valueIfAbsent)

获取操作的值,如果操作尚未完成,则立即返回传入的值。

参数:

valueIfAbsent - 如果操作未完成,则返回的默认值

返回:

操作结果、成功但为空结果的 null;如果操作尚未完成,则为传入值。

getNumberOfDependents

public int getNumberOfDependents()

获取依赖于此操作的估计操作数。 这不适用于同步/计划目的。

返回:

当前等待此操作完成的操作数。

handle

public AsyncOperation handle(@NonNull AsyncOperation.ResultBiFunction action)

函数(handle(action)、handleAsync(action)和 handleAsync(action,Executor)的句柄三个是构建其他函数的最基本延续函数。 在此操作成功完成或异常后,将执行传入的操作,从而允许观察到先行结果和先行异常。

参数:

action - 完成此操作后将执行的函数

返回:

一个新的异步操作,将基于传入操作的结果完成

handleAsync

public AsyncOperation handleAsync(@NonNull AsyncOperation.ResultBiFunction action)

函数(handle(action)、handleAsync(action)和 handleAsync(action,Executor)的句柄三个是构建其他函数的最基本延续函数。 在此操作成功完成或异常后,将执行传入的操作,从而允许观察到先行结果和先行异常。

参数:

action - 完成此操作后将执行的函数

返回:

一个新的异步操作,将基于传入操作的结果完成

handleAsync

public AsyncOperation handleAsync( @NonNull AsyncOperation.ResultBiFunction action, @NonNull Executor executor)

函数(handle(action)、handleAsync(action)和 handleAsync(action,Executor)的句柄三个是构建其他函数的最基本延续函数。 在此操作成功完成或异常后,将执行传入的操作,从而允许观察到先行结果和先行异常。

参数:

action - 完成此操作后将执行的函数
executor - 要对其执行函数的执行程序

返回:

一个新的异步操作,将基于传入操作的结果完成

isCancelled

public boolean isCancelled()

检查将来是否已成功取消。

返回:

如果取消操作,则为

isCompletedExceptionally

public boolean isCompletedExceptionally()

检查操作是否以任何异常方式完成(取消或 completeExceptionally)

返回:

如果操作以异常方式完成(取消或显式完成)

isDone

public boolean isDone()

检查将来是否完成。 在设置结果或设置异常时,将来完成。

返回:

如果操作已完成,则为

join

public T join()

获取将来的值,如有必要,请等待,直到将来完成。 与 get() 联接不同,如果在完成此操作的过程中发生任何异常,则引发 CompletionException

返回:

操作结果,或为成功但为空的结果为 null。

runAfterBoth

public AsyncOperation runAfterBoth(@NonNull AsyncOperation other, @NonNull Runnable action)

当此操作和传入的操作成功完成时,函数的 runAfterBoth 三重奏将运行在 Runnable 中传递。 如果任一操作异常完成,则返回的操作也会异常完成。

参数:

other - 将另一个操作“AND”组合在一起
action - 在完成这两个操作后将执行的可运行

返回:

一个新的异步操作,将基于传入操作的结果完成

runAfterBothAsync

public AsyncOperation runAfterBothAsync(@NonNull AsyncOperation other, @NonNull Runnable action)

当此操作和传入的操作成功完成时,函数的 runAfterBoth 三重奏将运行在 Runnable 中传递。 如果任一操作异常完成,则返回的操作也会异常完成。

参数:

other - 将另一个操作“AND”组合在一起
action - 在完成这两个操作后将执行的可运行

返回:

一个新的异步操作,将基于传入操作的结果完成

runAfterBothAsync

public AsyncOperation runAfterBothAsync(@NonNull AsyncOperation other, @NonNull Runnable action, @NonNull Executor executor)

当此操作和传入的操作成功完成时,函数的 runAfterBoth 三重奏将运行在 Runnable 中传递。 如果任一操作异常完成,则返回的操作也会异常完成。

参数:

other - 将另一个操作“AND”组合在一起
action - 在完成这两个操作后将执行的可运行
executor - 要对其执行函数的执行程序

返回:

一个新的异步操作,将基于传入操作的结果完成

runAfterEither

public AsyncOperation runAfterEither(@NonNull AsyncOperation other, @NonNull Runnable action)

当此操作或传入的操作成功完成时,runAfterE 三个函数运行在 Runnable 中传递的函数。 如果完成的操作异常,则返回的操作也会异常完成。

参数:

other - 将另一个操作“OR”组合在一起
action - 可在任一操作完成后执行的可运行

返回:

一个新的异步操作,将基于传入操作的结果完成

runAfterEitherAsync

public AsyncOperation runAfterEitherAsync(@NonNull AsyncOperation other, @NonNull Runnable action)

当此操作或传入的操作成功完成时,runAfterE 三个函数运行在 Runnable 中传递的函数。 如果完成的操作异常,则返回的操作也会异常完成。

参数:

other - 将另一个操作“OR”组合在一起
action - 可在任一操作完成后执行的可运行

返回:

一个新的异步操作,将基于传入操作的结果完成

runAfterEitherAsync

public AsyncOperation runAfterEitherAsync( @NonNull AsyncOperation other, @NonNull Runnable action, @NonNull Executor executor)

当此操作或传入的操作成功完成时,runAfterE 三个函数运行在 Runnable 中传递的函数。 如果完成的操作异常,则返回的操作也会异常完成。

参数:

other - 将另一个操作“OR”组合在一起
action - 可在任一操作完成后执行的可运行
executor - 要对其执行函数的执行程序

返回:

一个新的异步操作,将基于传入操作的结果完成

runAsync

public static AsyncOperation runAsync(@NonNull Runnable runnable)

创建将在默认执行程序上运行传入的 Runnable 的操作

参数:

runnable - 要运行的操作

返回:

一个新的异步操作,将在可运行完成时完成

runAsync

public static AsyncOperation runAsync(@NonNull Runnable runnable, @NonNull Executor executor)

创建一个操作,该操作将在传入的执行程序上运行传入的 Runnable

参数:

runnable - 要运行的操作
executor - 运行操作的执行程序

返回:

一个新的异步操作,将在可运行完成时完成

supplyAsync

public static static AsyncOperation supplyAsync(@NonNull AsyncOperation.Supplier supplier)

创建一个操作,该操作将使用默认执行程序从供应商获取值

参数:

supplier - 从中获取值来完成此操作的供应商

返回:

将使用供应商的值完成的新异步操作

supplyAsync

public static static AsyncOperation supplyAsync(@NonNull AsyncOperation.Supplier supplier, @NonNull Executor executor)

创建一个操作,该操作将使用传入的执行程序从供应商那里获取值

参数:

supplier - 从中获取值来完成此操作的供应商
executor - 运行操作的执行程序

返回:

将使用供应商的值完成的新异步操作

thenAccept

public AsyncOperation thenAccept(@NonNull ResultConsumer action)

函数 (thenAccept(action)、thenAcceptAsync(action)和 thenAcceptAsync(action,Executor)的 thenAccept 三个函数在此操作成功完成后在 ResultConsumer 中运行传递。

参数:

action - 完成此操作后将执行的 ResultConsumer

返回:

一个新的异步操作,将基于传入操作的结果完成

thenAcceptAsync

public AsyncOperation thenAcceptAsync(@NonNull ResultConsumer action)

函数 (thenAccept(action)、thenAcceptAsync(action)和 thenAcceptAsync(action,Executor)的 thenAccept 三个函数在此操作成功完成后在 ResultConsumer 中运行传递。

参数:

action - 完成此操作后将执行的 ResultConsumer

返回:

一个新的异步操作,将基于传入操作的结果完成

thenAcceptAsync

public AsyncOperation thenAcceptAsync(@NonNull ResultConsumer action, @NonNull Executor executor)

函数 (thenAccept(action)、thenAcceptAsync(action)和 thenAcceptAsync(action,Executor)的 thenAccept 三个函数在此操作成功完成后在 ResultConsumer 中运行传递。

参数:

action - 完成此操作后将执行的 ResultConsumer
executor - 要对其执行函数的执行程序

返回:

一个新的异步操作,将基于传入操作的结果完成

thenAcceptBoth

public AsyncOperation thenAcceptBoth( @NonNull AsyncOperation other, @NonNull AsyncOperation.ResultBiConsumer action)

然后,当此操作和传入的操作成功完成时,函数的 thenAcceptBoth 三个函数在 ResultConsumer 中运行传递。 如果任一操作异常完成,则返回的操作也会异常完成。

参数:

other - 将另一个操作“AND”组合在一起
action - 完成这两个操作后将执行的 ResultConsumer

返回:

一个新的异步操作,将基于传入操作的结果完成

thenAcceptBothAsync

public AsyncOperation thenAcceptBothAsync( @NonNull AsyncOperation other, @NonNull AsyncOperation.ResultBiConsumer action)

然后,当此操作和传入的操作成功完成时,函数的 thenAcceptBoth 三个函数在 ResultConsumer 中运行传递。 如果任一操作异常完成,则返回的操作也会异常完成。

参数:

other - 将另一个操作“AND”组合在一起
action - 完成这两个操作后将执行的 ResultConsumer

返回:

一个新的异步操作,将基于传入操作的结果完成

thenAcceptBothAsync

public AsyncOperation thenAcceptBothAsync(@NonNull AsyncOperation other, @NonNull AsyncOperation.ResultBiConsumer action, @NonNull Executor executor)

然后,当此操作和传入的操作成功完成时,函数的 thenAcceptBoth 三个函数在 ResultConsumer 中运行传递。 如果任一操作异常完成,则返回的操作也会异常完成。

参数:

other - 将另一个操作“AND”组合在一起
action - 完成这两个操作后将执行的 ResultConsumer
executor - 要对其执行函数的执行程序

返回:

一个新的异步操作,将基于传入操作的结果完成

thenApply

public AsyncOperation thenApply(@NonNull ResultFunction action)

然后,函数(thenApplyAsync(action)、thenApplyAsync(action)和 thenApplyAsync(action,Executor)的 thenApply 三重函数在此操作成功完成时运行传入的 ResultFunction。

参数:

action - 完成此操作后将执行的 ResultFunction

返回:

一个新的异步操作,将基于传入操作的结果完成

thenApplyAsync

public AsyncOperation thenApplyAsync(@NonNull ResultFunction action)

然后,函数(thenApplyAsync(action)、thenApplyAsync(action)和 thenApplyAsync(action,Executor)的 thenApply 三重函数在此操作成功完成时运行传入的 ResultFunction。

参数:

action - 完成此操作后将执行的 ResultFunction

返回:

一个新的异步操作,将基于传入操作的结果完成

thenApplyAsync

public AsyncOperation thenApplyAsync(@NonNull ResultFunction action, @NonNull Executor executor)

然后,函数(thenApplyAsync(action)、thenApplyAsync(action)和 thenApplyAsync(action,Executor)的 thenApply 三重函数在此操作成功完成时运行传入的 ResultFunction。

参数:

action - 完成此操作后将执行的 ResultFunction
executor - 要对其执行函数的执行程序

返回:

一个新的异步操作,将基于传入操作的结果完成

thenCombine

public AsyncOperation thenCombine( @NonNull AsyncOperation other, @NonNull AsyncOperation.ResultBiFunction action)

当此操作和传入的操作成功完成时,functions 的 thenCombine 三个函数运行传入的 ResultFunction。 如果任一操作异常完成,则返回的操作也会异常完成。

参数:

other - 将另一个操作“AND”组合在一起
action - 完成这两项操作后将执行的 ResultFunction

返回:

一个新的异步操作,将基于传入操作的结果完成

thenCombineAsync

public AsyncOperation thenCombineAsync( @NonNull AsyncOperation other, @NonNull AsyncOperation.ResultBiFunction action)

当此操作和传入的操作成功完成时,functions 的 thenCombine 三个函数运行传入的 ResultFunction。 如果任一操作异常完成,则返回的操作也会异常完成。

参数:

other - 将另一个操作“AND”组合在一起
action - 完成这两项操作后将执行的 ResultFunction

返回:

一个新的异步操作,将基于传入操作的结果完成

thenCombineAsync

public AsyncOperation thenCombineAsync(@NonNull AsyncOperation other, @NonNull AsyncOperation.ResultBiFunction action, @NonNull Executor executor)

当此操作和传入的操作成功完成时,functions 的 thenCombine 三个函数运行传入的 ResultFunction。 如果任一操作异常完成,则返回的操作也会异常完成。

参数:

other - 将另一个操作“AND”组合在一起
action - 完成这两项操作后将执行的 ResultFunction
executor - 要对其执行函数的执行程序

返回:

一个新的异步操作,将基于传入操作的结果完成

thenCompose

public AsyncOperation thenCompose(@NonNull AsyncOperation.ResultFunction> action)

然后,当此操作成功完成时,函数的 thenCompose 三个函数运行传入的 ResultFunction。 ResultFunction 返回 AsyncOperation<T>,此调用的返回操作返回 AsyncOperation<T<T<,而不是 AsyncOperation<AsyncOperation>>T

参数:

action - 完成这两个操作后执行的函数

返回:

一个新的异步操作,将基于传入操作的结果完成

thenComposeAsync

public AsyncOperation thenComposeAsync(@NonNull AsyncOperation.ResultFunction> action)

然后,当此操作成功完成时,函数的 thenCompose 三个函数运行传入的 ResultFunction。 ResultFunction 返回 AsyncOperation<T>,此调用的返回操作返回 AsyncOperation<T<T<,而不是 AsyncOperation<AsyncOperation>>T

参数:

action - 完成这两个操作后执行的函数

返回:

一个新的异步操作,将基于传入操作的结果完成

thenComposeAsync

public AsyncOperation thenComposeAsync(AsyncOperation.ResultFunction> action, Executor executor)

然后,当此操作成功完成时,函数的 thenCompose 三个函数运行传入的 ResultFunction。 ResultFunction 返回 AsyncOperation<T>,此调用的返回操作返回 AsyncOperation<T<T<,而不是 AsyncOperation<AsyncOperation>>T

参数:

action - 完成这两个操作后执行的函数
executor - 要对其执行函数的执行程序

返回:

一个新的异步操作,将基于传入操作的结果完成

thenRun

public AsyncOperation thenRun(@NonNull Runnable action)

然后运行三个函数(thenRun(action)、thenRunAsync(action),然后RunAsync(action,Executor))在此操作成功完成时在 Runnable 中传递。

参数:

action - 可运行,此操作完成后将执行

返回:

一个新的异步操作,将基于传入操作的结果完成

thenRunAsync

public AsyncOperation thenRunAsync(@NonNull Runnable action)

然后运行三个函数(thenRun(action)、thenRunAsync(action),然后RunAsync(action,Executor))在此操作成功完成时在 Runnable 中传递。

参数:

action - 可运行,此操作完成后将执行

返回:

一个新的异步操作,将基于传入操作的结果完成

thenRunAsync

public AsyncOperation thenRunAsync(@NonNull Runnable action, @NonNull Executor executor)

然后运行三个函数(thenRun(action)、thenRunAsync(action),然后RunAsync(action,Executor))在此操作成功完成时在 Runnable 中传递。

参数:

action - 可运行,此操作完成后将执行
executor - 要对其执行函数的执行程序

返回:

一个新的异步操作,将基于传入操作的结果完成

whenComplete

public AsyncOperation whenComplete(@NonNull AsyncOperation.ResultBiConsumer action)

函数(whenComplete(action)、whenCompleteAsync(action)和 whenCompleteAsync(action,Executor)的 whenComplete 三重函数类似于句柄函数。 在此操作成功完成或异常后,将执行传入的操作,从而允许观察到先行结果和先行异常。 与句柄不同,操作的结果不会传播到依赖操作;它们观察到此阶段的异常/结果,而不是传入的操作结果

参数:

action - 完成此操作后将执行的函数

返回:

一个新的异步操作,将基于传入操作的结果完成

whenCompleteAsync

public AsyncOperation whenCompleteAsync(@NonNull AsyncOperation.ResultBiConsumer action)

函数(whenComplete(action)、whenCompleteAsync(action)和 whenCompleteAsync(action,Executor)的 whenComplete 三重函数类似于句柄函数。 在此操作成功完成或异常后,将执行传入的操作,从而允许观察到先行结果和先行异常。 与句柄不同,操作的结果不会传播到依赖操作;它们观察到此阶段的异常/结果,而不是传入的操作结果

参数:

action - 完成此操作后将执行的函数

返回:

一个新的异步操作,将基于传入操作的结果完成

whenCompleteAsync

public AsyncOperation whenCompleteAsync( @NonNull AsyncOperation.ResultBiConsumer action, @NonNull Executor executor)

函数(whenComplete(action)、whenCompleteAsync(action)和 whenCompleteAsync(action,Executor)的 whenComplete 三重函数类似于句柄函数。 在此操作成功完成或异常后,将执行传入的操作,从而允许观察到先行结果和先行异常。 与句柄不同,操作的结果不会传播到依赖操作;它们观察到此阶段的异常/结果,而不是传入的操作结果

参数:

action - 完成此操作后将执行的函数
executor - 要对其执行函数的执行程序

返回:

一个新的异步操作,将基于传入操作的结果完成

适用于