Functions Similar to coroutineScope
Learn about more functions that behave like coroutineScope.
We'll cover the following...
We'll cover the following...
supervisorScope
The supervisorScope function also behaves like coroutineScope—it creates a CoroutineScope that inherits from the outer scope and calls the specified suspend block. The difference is that it overrides the context’s Job with SupervisorJob, so it’s not canceled when a child raises an exception.
package kotlinx.coroutines.app
import kotlinx.coroutines.*
fun main() = runBlocking {
println("Before")
supervisorScope {
launch {
delay(1000)
throw Error()
}
launch {
delay(2000)
println("Done")
}
}
println("After")
}Using supervisorScope
We mainly use supervisorScope in functions that start multiple independent tasks.
Silencing its exception propagation to the parent is not enough if we use async. When we call await, and the async coroutine finishes with an exception, await will ...