有时候可能面临嵌套的scope*
函数或者作用域内有子作用域情况, 这个时候的生命周期是如何
scopeNet {
val task = Post<String>("api0").await()
scopeNet {
val task = Post<String>("api0").await() // 此时发生请求错误
}.catch {
// A
}
}.catch {
// B
}
A
处, 并被捕获, 同时不影响外部scopeNet
的请求和异常捕获scopeNet
的异常抛出和捕获互不影响scopeNet/scopeDialog/scope
等函数同理scopeNet {
val await = Post<String>("api").await()
launch {
val task = Post<String>("api0").await() // 此时发生请求错误
}.invokeOnCompletion {
// A
}
}.catch {
// B
}
A
然后执行B
, 并且都能捕获异常.scopeNet
发生错误也会导致launch
内的请求被取消, launch
发生错误也会导致scopeNet
发生错误