Udith
catch
public fun <T> Flow<T>.catchWithReferenceToLastValue( action: suspend FlowCollector<T>.(item: T?, cause: Throwable) -> Unit ): Flow<T> = flow { var previousValue: T? = null collect { value -> previousValue = value emit(value) catch { cause -> action(previousValue, cause) } } }
public fun <T> Flow<T>.catchWithReferenceToLastValue( action: suspend FlowCollector<T>.(item: T?, cause: Throwable) -> Unit ): Flow<T> { var previousValue: T? = null return flow { collect { value -> previousValue = value emit(value) } }.catch { cause -> action(previousValue, cause) } }
A modern programming language that makes developers happier.