viralshah
08/12/2020, 4:23 PMfun processMessages(){
for (message in messages) {
val foo = async {processMessage(message)
val bar = foo.await()? // Is this how we await on a suspending function?
when (bar) {
is Outcome.Error -> {// don't delete message, log error}
is Outcome.Success -> {deleteMessage()}
}
}
}
suspend fun processMessage(message): Outcome<Foo>
sealed class Outcome<out T : Any> {
data class Error(val message: String, val cause: Exception? = null) : Outcome<Nothing>()
data class Success<out T : Any>(val value: T) : Outcome<T>()
}
phldavies
08/12/2020, 4:26 PMThiyagu
08/12/2020, 9:40 PM