CordaFuture - corda

corda / net.corda.core.concurrent / CordaFuture

# CordaFuture

`interface CordaFuture<V> : Future<V>`

Same as Future with additional methods to provide some of the features of java.util.concurrent.CompletableFuture while minimising the API surface area. In Kotlin, to avoid compile errors, whenever CordaFuture is used in a parameter or extension method receiver type, its type parameter should be specified with out variance.

### Functions

#### then | Run the given callback when this future is done, on the completion thread. If the completion thread is problematic for you e.g. deadlock, you can submit to an executor manually. If callback fails, its throwable is logged. `abstract fun <W> then(callback: (CordaFuture<V>) -> W): Unit`
#### toCompletableFuture | `abstract fun toCompletableFuture(): CompletableFuture<V>`

### Extension Functions

#### toObservable | `fun <A> CordaFuture<out A>.toObservable(): Observable<A>`