Skip to content

Instantly share code, notes, and snippets.

View pencelab's full-sized avatar
☯️

Glenn pencelab

☯️
View GitHub Profile
fun loadItems() {
showLoadingView()
val data = requestData()
hideLoadingView()
appendItemsToListView(data)
}
suspend fun loadItems() {
withContext(Dispatchers.Main) {
showLoadingView()
}
withContext(Dispatchers.IO) {
val data = requestData()
}
withContext(Dispatchers.Main) {
hideLoadingView()
appendItemsToListView(data)
suspend fun loadItems() = withContext(Dispatchers.IO) {
withContext(Dispatchers.Main) {
showLoadingView()
}
val data = requestData()
withContext(Dispatchers.Main) {
hideLoadingView()
appendItemsToListView(data)
}
}
suspend fun loadItems() = withContext(Dispatchers.Main) {
showLoadingView()
val data = withContext(Dispatchers.IO) {
requestData()
}
hideLoadingView()
appendItemsToListView(data)
}
suspend fun loadItems() {
showLoadingView()
val data = withContext(Dispatchers.IO) {
requestData()
}
hideLoadingView()
appendItemsToListView(data)
}
fun main() {
log("Start")
val myObject = MyObject()
runBlocking {
log("RunBlocking start")
val def = myObject.sumRandomNumbersAsync()
fun main() {
log("Start")
val operator = Operator()
runBlocking {
//To be implemented...
}
operator.release()
@pencelab
pencelab / kotlin-coroutines-stories-09-random-number-suspend-function.kt
Last active October 29, 2019 05:57
Suspend functions to produce a random number.
private suspend fun myRandomNumber(): Int = withContext(Dispatchers.Default) {
log("Retrieving random number...")
delay(2000) //Simulating a heavy computation
val random = (1..100).random()
log("Random Number = $random")
random
}
runBlocking {
val defIsEven = operator.sumIsEvenAsync()
val defAverage = operator.sumAverageAsync()
launch {
try {
log("Operation [Is Even] Result = ${defIsEven.await()}")
} catch (e: Exception) {
log("Operation [Is Even] Caught: [ $e ]")
} finally {
@pencelab
pencelab / kotlin-coroutines-stories-09-random-number-suspend-functions.kt
Last active October 30, 2019 23:22
Suspend functions to produce a random number.
private suspend fun myRandomNumberSuccess(operation: String): Int = withContext(Dispatchers.Default) {
log("$operation Retrieving random number...")
delay(2000) //Simulating a heavy computation
val random = (1..100).random()
log("$operation Random Number = $random")
random
}
private suspend fun myRandomNumberFail(operation: String): Int = withContext(Dispatchers.Default) {
log("$operation Retrieving random number...")