withPromise

suspend fun <T> withPromise(f: suspend (CompletableDeferred<T>) -> Unit): T
suspend fun <T> CoroutineScope.withPromise(f: suspend (CompletableDeferred<T>) -> Unit): T