bogdoll
08/10/2019, 8:27 AMsuspend fun <T> CompletableFuture<T>.suspending() : T = suspendCoroutine { cont ->
whenComplete { v, e -> if(e==null) cont.resume(v) else cont.resumeWithException(e) }
}
It can be used for example to wrap the following AWS SDK method:
CompletableFuture<CopyObjectResponse> copyObject(CopyObjectRequest copyObjectRequest)
into
suspend fun S3AsyncClient.suspendingCopyObject(copyObjectRequest: CopyObjectRequest) : CopyObjectResponse = copyObject(copyObjectRequest).suspending()
SiebelsTim
08/10/2019, 8:29 AMbogdoll
08/10/2019, 8:33 AMSiebelsTim
08/10/2019, 8:42 AMDico
08/10/2019, 9:26 AM