共用方式為


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 方法。

建構函式摘要

建構函式 Description
AsyncOperation()

建立新的 AsyncOperation

方法摘要

修飾詞與類型 方法與描述
<U> AsyncOperation<U> _handleAsyncInternal(AsyncOperation.ResultBiFunction<? super T, ? super Throwable, ? extends U> action, Executor executor)

函式 (控制碼 (動作) 、handleAsync (動作) ,以及 handleAsync (action,Executor) ) 是建置其他函式的最基本接續函式。 成功或完成這項作業時,將會執行傳入的動作,以允許觀察到前項結果和前項例外狀況。

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

函式的 whenComplete 三個函式 (whenComplete (動作) 、whenCompleteAsync (巨集指令) ,以及 whenCompleteAsync (action,Executor) ) 與控制碼函式類似。 成功或完成這項作業時,將會執行傳入的動作,以允許觀察到前項結果和前項例外狀況。 不同于控制碼,動作的結果不會傳播至相依作業;他們會觀察這個階段的例外狀況/結果,而不是傳入動作的

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)

函式 (控制碼 (動作) 、handleAsync (動作) ,以及 handleAsync (action,Executor) ) 是建置其他函式的最基本接續函式。 成功或完成這項作業時,將會執行傳入的動作,以允許觀察到前項結果和前項例外狀況。

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

函式 (控制碼 (動作) 、handleAsync (動作) ,以及 handleAsync (action,Executor) ) 是建置其他函式的最基本接續函式。 成功或完成這項作業時,將會執行傳入的動作,以允許觀察到前項結果和前項例外狀況。

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

函式 (控制碼 (動作) 、handleAsync (動作) ,以及 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)

建立作業,以在預設執行程式上執行傳入的

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 (thenAccept (巨集指令) 的 thenAcceptAsync (巨集指令) ,然後AcceptAsync (action,Executor) ) 會在此作業成功完成時執行傳入 ResultConsumer 中的函式。

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

thenAccept (thenAccept (巨集指令) 的 thenAcceptAsync (巨集指令) ,然後AcceptAsync (action,Executor) ) 會在此作業成功完成時執行傳入 ResultConsumer 中的函式。

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

thenAccept (thenAccept (巨集指令) 的 thenAcceptAsync (巨集指令) ,然後AcceptAsync (action,Executor) ) 會在此作業成功完成時執行傳入 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)

thenApply 三個函式 (thenApplyAsync 動作 (動作) ,然後ApplyAsync (動作) ,然後ApplyAsync (action,Executor) ) 會在此作業成功完成時執行傳入 ResultFunction。

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

thenApply 三個函式 (thenApplyAsync 動作 (動作) ,然後ApplyAsync (動作) ,然後ApplyAsync (action,Executor) ) 會在此作業成功完成時執行傳入 ResultFunction。

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

thenApply 三個函式 (thenApplyAsync 動作 (動作) ,然後ApplyAsync (動作) ,然後ApplyAsync (action,Executor) ) 會在此作業成功完成時執行傳入 ResultFunction。

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

thenCombine 三個函式會在此作業和傳入的作業順利完成時,執行 ResultFunction 中傳遞的 。 如果任一個作業例外地完成,傳回的作業也會例外地完成。

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

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)

thenCombine 三個函式會在此作業和傳入的作業順利完成時,執行 ResultFunction 中傳遞的 。 如果任一個作業例外地完成,傳回的作業也會例外地完成。

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

thenCompose 三個函式會在此作業順利完成時,執行在 ResultFunction 中傳遞的 。 ResultFunction 會傳回 AsyncOperation < T > ,而此呼叫的傳回作業會傳回 AsyncOperation T > ,而不是 AsyncOperation < AsyncOperation << T>>

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

thenCompose 三個函式會在此作業順利完成時,執行在 ResultFunction 中傳遞的 。 ResultFunction 會傳回 AsyncOperation < T > ,而此呼叫的傳回作業會傳回 AsyncOperation 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 > ,而不是 AsyncOperation < AsyncOperation << T>>

AsyncOperation<Void> thenRun(@NonNull Runnable action)

thenRun 函式的 trio (thenRun (巨集指令) ,然後RunAsync (動作) ,然後RunAsync (action,Executor) ) 會在此作業成功完成時執行傳入 Runnable。

AsyncOperation<Void> thenRunAsync(@NonNull Runnable action)

thenRun 函式的 trio (thenRun (巨集指令) ,然後RunAsync (動作) ,然後RunAsync (action,Executor) ) 會在此作業成功完成時執行傳入 Runnable。

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

thenRun 函式的 trio (thenRun (巨集指令) ,然後RunAsync (動作) ,然後RunAsync (action,Executor) ) 會在此作業成功完成時執行傳入 Runnable。

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

函式的 whenComplete 三個函式 (whenComplete (動作) 、whenCompleteAsync (巨集指令) ,以及 whenCompleteAsync (action,Executor) ) 與控制碼函式類似。 成功或完成這項作業時,將會執行傳入的動作,以允許觀察到前項結果和前項例外狀況。 不同于控制碼,動作的結果不會傳播至相依作業;他們會觀察這個階段的例外狀況/結果,而不是傳入動作的

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

函式的 whenComplete 三個函式 (whenComplete (動作) 、whenCompleteAsync (巨集指令) ,以及 whenCompleteAsync (action,Executor) ) 與控制碼函式類似。 成功或完成這項作業時,將會執行傳入的動作,以允許觀察到前項結果和前項例外狀況。 不同于控制碼,動作的結果不會傳播至相依作業;他們會觀察這個階段的例外狀況/結果,而不是傳入動作的

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

函式的 whenComplete 三個函式 (whenComplete (動作) 、whenCompleteAsync (巨集指令) ,以及 whenCompleteAsync (action,Executor) ) 與控制碼函式類似。 成功或完成這項作業時,將會執行傳入的動作,以允許觀察到前項結果和前項例外狀況。 不同于控制碼,動作的結果不會傳播至相依作業;他們會觀察這個階段的例外狀況/結果,而不是傳入動作的

建構函式詳細資料

AsyncOperation

public AsyncOperation()

建立新的 AsyncOperation

方法詳細資料

_handleAsyncInternal

protected AsyncOperation _handleAsyncInternal(AsyncOperation.ResultBiFunction action, Executor executor)

函式 (控制碼 (動作) 、handleAsync (動作) ,以及 handleAsync (action,Executor) ) 是建置其他函式的最基本接續函式。 成功或完成這項作業時,將會執行傳入的動作,以允許觀察到前項結果和前項例外狀況。

Parameters:

action - 完成此作業時執行的函式
executor - 要用來執行函式的執行程式

Returns:

根據傳入動作的結果完成的新異步作業

_whenCompleteAsyncInternal

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

函式的 whenComplete 三個函式 (whenComplete (動作) 、whenCompleteAsync (巨集指令) ,以及 whenCompleteAsync (action,Executor) ) 與控制碼函式類似。 成功或完成這項作業時,將會執行傳入的動作,以允許觀察到前項結果和前項例外狀況。 不同于控制碼,動作的結果不會傳播至相依作業;他們會觀察這個階段的例外狀況/結果,而不是傳入動作的

Parameters:

action - 完成此作業時執行的函式
executor - 要用來執行函式的執行程式

Returns:

根據傳入動作的結果完成的新異步作業

acceptEither

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

當這項作業或傳入的作業成功完成時,acceptE 其中三個函式都會執行在 ResultConsumer 中傳遞的 。 如果完成的作業會例外地完成,則傳回的作業也會例外地完成。

Parameters:

other - 另一個作業一起「OR」
action - 在任一作業完成時執行的 ResultConsumer

Returns:

根據傳入動作的結果完成的新異步作業

acceptEitherAsync

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

當這項作業或傳入的作業成功完成時,acceptE 其中三個函式都會執行在 ResultConsumer 中傳遞的 。 如果完成的作業會例外地完成,則傳回的作業也會例外地完成。

Parameters:

other - 另一個作業一起「OR」
action - 在任一作業完成時執行的 ResultConsumer

Returns:

根據傳入動作的結果完成的新異步作業

acceptEitherAsync

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

當這項作業或傳入的作業成功完成時,acceptE 其中三個函式都會執行在 ResultConsumer 中傳遞的 。 如果完成的作業會例外地完成,則傳回的作業也會例外地完成。

Parameters:

other - 另一個作業一起「OR」
action - 在任一作業完成時執行的 ResultConsumer
executor - 要用來執行函式的執行程式

Returns:

根據傳入動作的結果完成的新異步作業

allOf

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

建立當所有傳遞的作業完成時,將會完成的作業。

Parameters:

operations - 將作業清單一起新增至 「AND」

Returns:

當所有作業完成時,將會完成的新異步作業

anyOf

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

建立作業,此作業會在任何傳遞的作業完成時完成。

Parameters:

operations - 將作業清單一起新增至 「OR」

Returns:

任何作業完成時將會完成的新異步作業

applyToEither

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

當這項作業或傳入的作業成功完成時,applyToE 函式的三個函式都會執行傳入的 ResultFunction。 如果完成的作業會例外地完成,則傳回的作業也會例外地完成。

Parameters:

other - 另一個作業一起「OR」
action - 在任一作業完成時執行的 ResultFunction

Returns:

根據傳入動作的結果完成的新異步作業

applyToEitherAsync

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

當這項作業或傳入的作業成功完成時,applyToE 函式的三個函式都會執行傳入的 ResultFunction。 如果完成的作業會例外地完成,則傳回的作業也會例外地完成。

Parameters:

other - 另一個作業一起「OR」
action - 在任一作業完成時執行的 ResultFunction

Returns:

根據傳入動作的結果完成的新異步作業

applyToEitherAsync

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

當這項作業或傳入的作業成功完成時,applyToE 函式的三個函式都會執行傳入的 ResultFunction。 如果完成的作業會例外地完成,則傳回的作業也會例外地完成。

Parameters:

other - 另一個作業一起「OR」
action - 在任一作業完成時執行的 ResultFunction
executor - 要用來執行函式的執行程式

Returns:

根據傳入動作的結果完成的新異步作業

cancel

public boolean cancel(boolean mayInterruptIfRunning)

嘗試取消未來並停止等候結果。

取消 AsyncOperation 會導致透過 get () 立即收到 CancellationException 等候未來的任何執行緒。 作業執行不會中斷,但將會忽略取消呼叫的任何最終結果。

Parameters:

mayInterruptIfRunning - 忽略,因為作業無法中斷。

Returns:

如果未來在完成之前取消,則為 true;如果未來因為已完成而無法取消,則為 false。

complete

public final void complete(T value)

完成此作業時會以指定的值運作。

Parameters:

value - 作業的結果,或成功但空白結果的 Null。

completedFuture

public static static AsyncOperation completedFuture(U value)

建立已經使用指定值完成的作業

Parameters:

value - 要完成作業的 值

Returns:

已完成的新異步操作

completeExceptionally

public final void completeExceptionally(@NonNull Throwable ex)

設定擷取未來值時將擲回的例外狀況,並標示未來完成。

Parameters:

ex - 可擲回以完成作業的 。

exceptionally

public AsyncOperation exceptionally(@NonNull AsyncOperation.ResultFunction action)

允許附加接續,只有在完成這項作業時才會執行。 請注意,沒有例外狀況的 *async* 變體,因此動作應該不會長時間執行,因為它可能會封鎖已完成這項作業的執行緒,或在已完成的作業時 (呼叫執行緒) 。

Parameters:

action - 作業完成時所要執行的動作。

get

public T get()

取得未來值,視需要等候直到未來完成為止。

Returns:

作業的結果,或成功但空白結果的 Null。

get

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

嘗試取得未來的值,視需要等到未來完成或逾時為止。

Parameters:

timeout
unit

Returns:

成功但空白結果的結果為 null。

getNow

public final T getNow(T valueIfAbsent)

如果作業尚未完成,則取得作業的值,立即傳回傳入的值。

Parameters:

valueIfAbsent - 如果作業未完成,則傳回的預設值

Returns:

作業結果、成功但空白的結果為 null,如果作業尚未完成,則為傳入值。

getNumberOfDependents

public int getNumberOfDependents()

取得相依于此作業的估計作業數目。 這並非用於同步處理/排程用途。

Returns:

目前正在等候此作業完成的作業數目。

handle

public AsyncOperation handle(@NonNull AsyncOperation.ResultBiFunction action)

函式 (控制碼 (動作) 、handleAsync (動作) ,以及 handleAsync (action,Executor) ) 是建置其他函式的最基本接續函式。 成功或完成這項作業時,將會執行傳入的動作,以允許觀察到前項結果和前項例外狀況。

Parameters:

action - 完成此作業時執行的函式

Returns:

根據傳入動作的結果完成的新異步作業

handleAsync

public AsyncOperation handleAsync(@NonNull AsyncOperation.ResultBiFunction action)

函式 (控制碼 (動作) 、handleAsync (動作) ,以及 handleAsync (action,Executor) ) 是建置其他函式的最基本接續函式。 成功或完成這項作業時,將會執行傳入的動作,以允許觀察到前項結果和前項例外狀況。

Parameters:

action - 完成此作業時執行的函式

Returns:

根據傳入動作的結果完成的新異步作業

handleAsync

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

函式 (控制碼 (動作) 、handleAsync (動作) ,以及 handleAsync (action,Executor) ) 是建置其他函式的最基本接續函式。 成功或完成這項作業時,將會執行傳入的動作,以允許觀察到前項結果和前項例外狀況。

Parameters:

action - 完成此作業時執行的函式
executor - 要用來執行函式的執行程式

Returns:

根據傳入動作的結果完成的新異步作業

isCancelled

public boolean isCancelled()

檢查未來是否已成功取消。

Returns:

如果作業已取消,則為

isCompletedExceptionally

public boolean isCompletedExceptionally()

檢查作業是否以任何例外方式完成, (取消或 completeExceptionally)

Returns:

如果作業以例外方式完成, (取消或明確)

isDone

public boolean isDone()

檢查未來是否完成。 未來會在設定結果或設定例外狀況時完成。

Returns:

如果作業已完成,則為

join

public T join()

取得未來值,視需要等候直到未來完成為止。 不同于 get () 聯結,如果在完成此作業的過程中發生任何例外狀況,則會擲回 CompletionException

Returns:

作業結果,或成功但空白結果的 Null。

runAfterBoth

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

當此作業和傳入的作業順利完成時,函式的 runAfterBoth 三項會執行在 Runnable 中傳遞的 。 如果任一個作業例外地完成,傳回的作業也會例外地完成。

Parameters:

other - 另一個作業一起「AND」
action - 可執行,這兩項作業完成時將會執行

Returns:

根據傳入動作的結果完成的新異步作業

runAfterBothAsync

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

當此作業和傳入的作業順利完成時,函式的 runAfterBoth 三項會執行在 Runnable 中傳遞的 。 如果任一個作業例外地完成,傳回的作業也會例外地完成。

Parameters:

other - 另一個作業一起「AND」
action - 可執行,這兩項作業完成時將會執行

Returns:

根據傳入動作的結果完成的新異步作業

runAfterBothAsync

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

當此作業和傳入的作業順利完成時,函式的 runAfterBoth 三項會執行在 Runnable 中傳遞的 。 如果任一個作業例外地完成,傳回的作業也會例外地完成。

Parameters:

other - 另一個作業一起「AND」
action - 可執行,這兩項作業完成時將會執行
executor - 要用來執行函式的執行程式

Returns:

根據傳入動作的結果完成的新異步作業

runAfterEither

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

runAfterE 函式的三個函式會在此作業或傳入的作業成功完成時,執行在 Runnable 中傳遞的 。 如果完成的作業會例外地完成,則傳回的作業也會例外地完成。

Parameters:

other - 另一個作業一起「OR」
action - 可執行,將在任一作業完成時執行

Returns:

根據傳入動作的結果完成的新異步作業

runAfterEitherAsync

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

runAfterE 函式的三個函式會在此作業或傳入的作業成功完成時,執行在 Runnable 中傳遞的 。 如果完成的作業會例外地完成,則傳回的作業也會例外地完成。

Parameters:

other - 另一個作業一起「OR」
action - 可執行,將在任一作業完成時執行

Returns:

根據傳入動作的結果完成的新異步作業

runAfterEitherAsync

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

runAfterE 函式的三個函式會在此作業或傳入的作業成功完成時,執行在 Runnable 中傳遞的 。 如果完成的作業會例外地完成,則傳回的作業也會例外地完成。

Parameters:

other - 另一個作業一起「OR」
action - 可執行,將在任一作業完成時執行
executor - 要用來執行函式的執行程式

Returns:

根據傳入動作的結果完成的新異步作業

runAsync

public static AsyncOperation runAsync(@NonNull Runnable runnable)

建立作業,以在預設執行程式上執行傳入的

Parameters:

runnable - 要執行的動作

Returns:

新的非同步作業,將在可執行完成時完成

runAsync

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

建立作業,在傳入的執行程式上執行傳入的 Runnable

Parameters:

runnable - 要執行的動作
executor - 要在其中執行動作的執行程式

Returns:

新的非同步作業,將在可執行完成時完成

supplyAsync

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

建立將使用預設執行程式從供應商取得值的作業

Parameters:

supplier - 要從中取得值以完成此作業的供應商

Returns:

新的非同步作業,將會以供應商的值完成

supplyAsync

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

建立作業,以使用傳入的執行程式從供應商取得值

Parameters:

supplier - 要從中取得值以完成此作業的供應商
executor - 要在其中執行動作的執行程式

Returns:

新的非同步作業,將會以供應商的值完成

thenAccept

public AsyncOperation thenAccept(@NonNull ResultConsumer action)

thenAccept (thenAccept (巨集指令) 的 thenAcceptAsync (巨集指令) ,然後AcceptAsync (action,Executor) ) 會在此作業成功完成時執行傳入 ResultConsumer 中的函式。

Parameters:

action - 完成此作業時將執行的 ResultConsumer

Returns:

根據傳入動作的結果完成的新異步作業

thenAcceptAsync

public AsyncOperation thenAcceptAsync(@NonNull ResultConsumer action)

thenAccept (thenAccept (巨集指令) 的 thenAcceptAsync (巨集指令) ,然後AcceptAsync (action,Executor) ) 會在此作業成功完成時執行傳入 ResultConsumer 中的函式。

Parameters:

action - 完成此作業時將執行的 ResultConsumer

Returns:

根據傳入動作的結果完成的新異步作業

thenAcceptAsync

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

thenAccept (thenAccept (巨集指令) 的 thenAcceptAsync (巨集指令) ,然後AcceptAsync (action,Executor) ) 會在此作業成功完成時執行傳入 ResultConsumer 中的函式。

Parameters:

action - 完成此作業時將執行的 ResultConsumer
executor - 要用來執行函式的執行程式

Returns:

根據傳入動作的結果完成的新異步作業

thenAcceptBoth

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

thenAcceptBoth 三個函式會在此作業和傳入的作業順利完成時,于 ResultConsumer 中執行。 如果任一個作業例外地完成,傳回的作業也會例外地完成。

Parameters:

other - 另一個作業一起「AND」
action - 完成這兩項作業時將執行的 ResultConsumer

Returns:

根據傳入動作的結果完成的新異步作業

thenAcceptBothAsync

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

thenAcceptBoth 三個函式會在此作業和傳入的作業順利完成時,于 ResultConsumer 中執行。 如果任一個作業例外地完成,傳回的作業也會例外地完成。

Parameters:

other - 另一個作業一起「AND」
action - 完成這兩項作業時將執行的 ResultConsumer

Returns:

根據傳入動作的結果完成的新異步作業

thenAcceptBothAsync

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

thenAcceptBoth 三個函式會在此作業和傳入的作業順利完成時,于 ResultConsumer 中執行。 如果任一個作業例外地完成,傳回的作業也會例外地完成。

Parameters:

other - 另一個作業一起「AND」
action - 完成這兩項作業時將執行的 ResultConsumer
executor - 要用來執行函式的執行程式

Returns:

根據傳入動作的結果完成的新異步作業

thenApply

public AsyncOperation thenApply(@NonNull ResultFunction action)

thenApply 三個函式 (thenApplyAsync 動作 (動作) ,然後ApplyAsync (動作) ,然後ApplyAsync (action,Executor) ) 會在此作業成功完成時執行傳入 ResultFunction。

Parameters:

action - 完成此作業時將執行的 ResultFunction

Returns:

根據傳入動作的結果完成的新異步作業

thenApplyAsync

public AsyncOperation thenApplyAsync(@NonNull ResultFunction action)

thenApply 三個函式 (thenApplyAsync 動作 (動作) ,然後ApplyAsync (動作) ,然後ApplyAsync (action,Executor) ) 會在此作業成功完成時執行傳入 ResultFunction。

Parameters:

action - 完成此作業時將執行的 ResultFunction

Returns:

根據傳入動作的結果完成的新異步作業

thenApplyAsync

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

thenApply 三個函式 (thenApplyAsync 動作 (動作) ,然後ApplyAsync (動作) ,然後ApplyAsync (action,Executor) ) 會在此作業成功完成時執行傳入 ResultFunction。

Parameters:

action - 完成此作業時將執行的 ResultFunction
executor - 要用來執行函式的執行程式

Returns:

根據傳入動作的結果完成的新異步作業

thenCombine

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

thenCombine 三個函式會在此作業和傳入的作業順利完成時,執行 ResultFunction 中傳遞的 。 如果任一個作業例外地完成,傳回的作業也會例外地完成。

Parameters:

other - 另一個作業一起「AND」
action - 完成這兩項作業時將執行的 ResultFunction

Returns:

根據傳入動作的結果完成的新異步作業

thenCombineAsync

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

thenCombine 三個函式會在此作業和傳入的作業順利完成時,執行 ResultFunction 中傳遞的 。 如果任一個作業例外地完成,傳回的作業也會例外地完成。

Parameters:

other - 另一個作業一起「AND」
action - 完成這兩項作業時將執行的 ResultFunction

Returns:

根據傳入動作的結果完成的新異步作業

thenCombineAsync

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

thenCombine 三個函式會在此作業和傳入的作業順利完成時,執行 ResultFunction 中傳遞的 。 如果任一個作業例外地完成,傳回的作業也會例外地完成。

Parameters:

other - 另一個作業一起「AND」
action - 完成這兩項作業時將執行的 ResultFunction
executor - 要用來執行函式的執行程式

Returns:

根據傳入動作的結果完成的新異步作業

thenCompose

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

thenCompose 三個函式會在此作業順利完成時,執行在 ResultFunction 中傳遞的 。 ResultFunction 會傳回 AsyncOperation < T > ,而此呼叫的傳回作業會傳回 AsyncOperation T > ,而不是 AsyncOperation < AsyncOperation << T>>

Parameters:

action - 完成這兩項作業時執行的函式

Returns:

根據傳入動作的結果完成的新異步作業

thenComposeAsync

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

thenCompose 三個函式會在此作業順利完成時,執行在 ResultFunction 中傳遞的 。 ResultFunction 會傳回 AsyncOperation < T > ,而此呼叫的傳回作業會傳回 AsyncOperation T > ,而不是 AsyncOperation < AsyncOperation << T>>

Parameters:

action - 完成這兩項作業時執行的函式

Returns:

根據傳入動作的結果完成的新異步作業

thenComposeAsync

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

thenCompose 三個函式會在此作業順利完成時,執行在 ResultFunction 中傳遞的 。 ResultFunction 會傳回 AsyncOperation < T > ,而此呼叫的傳回作業會傳回 AsyncOperation T > ,而不是 AsyncOperation < AsyncOperation << T>>

Parameters:

action - 完成這兩項作業時執行的函式
executor - 要用來執行函式的執行程式

Returns:

根據傳入動作的結果完成的新異步作業

thenRun

public AsyncOperation thenRun(@NonNull Runnable action)

thenRun 函式的 trio (thenRun (巨集指令) ,然後RunAsync (動作) ,然後RunAsync (action,Executor) ) 會在此作業成功完成時執行傳入 Runnable。

Parameters:

action - 可執行,此作業完成時將會執行

Returns:

根據傳入動作的結果完成的新異步作業

thenRunAsync

public AsyncOperation thenRunAsync(@NonNull Runnable action)

thenRun 函式的 trio (thenRun (巨集指令) ,然後RunAsync (動作) ,然後RunAsync (action,Executor) ) 會在此作業成功完成時執行傳入 Runnable。

Parameters:

action - 可執行,此作業完成時將會執行

Returns:

根據傳入動作的結果完成的新異步作業

thenRunAsync

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

thenRun 函式的 trio (thenRun (巨集指令) ,然後RunAsync (動作) ,然後RunAsync (action,Executor) ) 會在此作業成功完成時執行傳入 Runnable。

Parameters:

action - 可執行,此作業完成時將會執行
executor - 要用來執行函式的執行程式

Returns:

根據傳入動作的結果完成的新異步作業

whenComplete

public AsyncOperation whenComplete(@NonNull AsyncOperation.ResultBiConsumer action)

函式的 whenComplete 三個函式 (whenComplete (動作) 、whenCompleteAsync (巨集指令) ,以及 whenCompleteAsync (action,Executor) ) 與控制碼函式類似。 成功或完成這項作業時,將會執行傳入的動作,以允許觀察到前項結果和前項例外狀況。 不同于控制碼,動作的結果不會傳播至相依作業;他們會觀察這個階段的例外狀況/結果,而不是傳入動作的

Parameters:

action - 完成此作業時執行的函式

Returns:

根據傳入動作的結果完成的新異步作業

whenCompleteAsync

public AsyncOperation whenCompleteAsync(@NonNull AsyncOperation.ResultBiConsumer action)

函式的 whenComplete 三個函式 (whenComplete (動作) 、whenCompleteAsync (巨集指令) ,以及 whenCompleteAsync (action,Executor) ) 與控制碼函式類似。 成功或完成這項作業時,將會執行傳入的動作,以允許觀察到前項結果和前項例外狀況。 不同于控制碼,動作的結果不會傳播至相依作業;他們會觀察這個階段的例外狀況/結果,而不是傳入動作的

Parameters:

action - 完成此作業時執行的函式

Returns:

根據傳入動作的結果完成的新異步作業

whenCompleteAsync

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

函式的 whenComplete 三個函式 (whenComplete (動作) 、whenCompleteAsync (巨集指令) ,以及 whenCompleteAsync (action,Executor) ) 與控制碼函式類似。 成功或完成這項作業時,將會執行傳入的動作,以允許觀察到前項結果和前項例外狀況。 不同于控制碼,動作的結果不會傳播至相依作業;他們會觀察這個階段的例外狀況/結果,而不是傳入動作的

Parameters:

action - 完成此作業時執行的函式
executor - 要用來執行函式的執行程式

Returns:

根據傳入動作的結果完成的新異步作業

適用於