Skip to content

Instantly share code, notes, and snippets.

@Nillerr
Last active May 25, 2021 17:12
Show Gist options
  • Save Nillerr/f7b52d4f17f0c8fae1f594e76d041ae8 to your computer and use it in GitHub Desktop.
Save Nillerr/f7b52d4f17f0c8fae1f594e76d041ae8 to your computer and use it in GitHub Desktop.
fun <T> Flow<T>.collect(onEach: (T) -> Unit, onCompletion: (cause: Throwable?) -> Unit): Cancellable {
val scope = CoroutineScope(SupervisorJob() + Dispatchers.Main)
scope.launch {
try {
collect {
onEach(it)
}
onCompletion(null)
} catch (e: Throwable) {
onCompletion(e)
}
}
return object : Cancellable {
override fun cancel() {
scope.cancel()
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment