Skip to content

Instantly share code, notes, and snippets.

@JoseAlcerreca
Created June 25, 2020 15:32
Show Gist options
  • Save JoseAlcerreca/92ae43037634c242139d56e3076feeb2 to your computer and use it in GitHub Desktop.
Save JoseAlcerreca/92ae43037634c242139d56e3076feeb2 to your computer and use it in GitHub Desktop.
<!-- Copyright 2020 Google LLC.
SPDX-License-Identifier: Apache-2.0 -->
fun flowFrom(api: CallbackBasedApi): Flow<T> = callbackFlow {
val callback = object : Callback {
override fun onNextValue(value: T) {
offer(value)
}
override fun onApiError(cause: Throwable) {
close(cause)
}
override fun onCompleted() = close()
}
api.register(callback)
awaitClose { api.unregister(callback) }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment