Convert ListenableFuture to Coroutines Suspend or Deferred

May 14, 2019

Use kotlinx-coroutines-guava.

Dependencies

dependencies {
    // https://mvnrepository.com/artifact/org.jetbrains.kotlinx/kotlinx-coroutines-guava
    implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-guava:1.2.1'
}

Usage

val listenableFuture = ...

launch {
    val result = listenableFuture.await()

    // or
    val d = listenableFuture.asDeferred()
    val result2 = d.await()
}

References:

This work is licensed under a
Creative Commons Attribution-NonCommercial 4.0 International License.