Skip to content

Instantly share code, notes, and snippets.

View jhonatansabadi's full-sized avatar
🏠
Working from home

Jhonatan Sabadi jhonatansabadi

🏠
Working from home
View GitHub Profile
public val ViewModel.viewModelScope: CoroutineScope
get() {
valscope:CoroutineScope? = this.getTag(JOB_KEY)
if(scope !=null) {
returnscope
}
return setTagIfAbsent(
JOB_KEY,
CloseableCoroutineScope(SupervisorJob() + Dispatchers.Main.immediate)
)
scope.launch(Dispatcher.IO + Job())
public val ViewModel.viewModelScope: CoroutineScope
get() {
valscope:CoroutineScope? = this.getTag(JOB_KEY)
if(scope !=null) {
returnscope
}
return setTagIfAbsent(
JOB_KEY,
CloseableCoroutineScope(SupervisorJob() + Dispatchers.Main.immediate)
)
public interface CoroutineScope{
public valcoroutineContext:CoroutineContext
}
val listOfContexts = setOf<CoroutineContext>(Dispatcher.IO, Job())
viewModelScope.launch {
launch { }
launch { }
launch { }
}
//NÃO é o viewModelScope
coroutineScope.launch {
val name = getNameFromApi()
val lastName = getLastNameFromApi()
val user = User(name, lastName)
//....
}
//agora sim é o viewModelScope :)
viewModelScope.launch {
val name = getNameFromApi()
val lastName = getLastNameFromApi()
val user = User(name, lastName)
//....
}
fun setUser(): User {
viewModelScope.launch {
val name = getNameFromApi()
val lastName = getLastNameFromApi()
_user.value = User(name, lastName)
}
}
fun setUserConfigurations(): User {
viewModelScope.launch {
fun setUser() {
viewModelScope.launch {
// ...
}
}