【Android/Kotlin Coroutines】CompletableDeferredの使い方!非同期結果の待機

この記事からわかること
- Android StudioのKotlin CoroutinesのCompletableDeferredの使い方
- 非同期処理の結果を待機する方法
\ アプリをリリースしました /
環境
- Android Studio:Meerkat
- Kotlin:2.0.21
CompletableDeferred
CompletableDeferred
は非同期結果を制御するためのクラスです。コールバックで結果が取得できる既存の処理などをCoroutinesで扱えるようにすることができるようになります。
使い方のイメージとしては以下のようにコールバック実行前にインスタンス化し、コールバックの結果を取得したタイミングで通知、待機させていた箇所が動作をし始めるといった感じです。
このようにコールバック → コルーチンに変換することができるのがCompletableDeferred
の大きなメリットです。
メソッド / プロパティ | 概要 |
---|---|
complete | 完了通知 |
completeExceptionally | エラー通知 |
await | 完了/エラー通知を待機 |
isCompleted | 完了しているかどうか |
isCancelled | キャンセルされたかどうか |
キャンセルする
CompletableDeferred
をキャンセルするにはcancel
メソッドを使用します。引数にはCancellationException
型でキャンセル理由などを渡すことが可能です。
キャンセルもエラーをキャッチしてハンドリングします。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。