Случай использования: у меня есть много операций, которые я хочу выполнять асинхронно из основного потока, но также параллельно друг другу.
val scope = CoroutineScope(Dispatchers.IO)
val items = // List of items to do something.
scope.launch {
items.forEach { item ->
scope.launch {
if (itemFailsValidation(item)) {
// Here I want to skip this item but continue the forEach loop.
return@launch // "There is more than one label with such a name in this" scope"
}
doSomethingThatMightTakeABit(item)
}
}
}
Если я попытаюсь добавить метку, например inner@scope.launch
, редактор говорит: «Ярлык является избыточным, потому что на него нельзя ссылаться ни в '' break '', '' 'continue' ', и в' 'return' 'выражении"
Кто-нибудь знает хороший способ делать это?