gpt4 book ai didi

android - Kotlin Coroutines viewModelScope 中的改造调用

转载 作者:行者123 更新时间:2023-12-02 11:46:10 24 4
gpt4 key购买 nike

最近我更新了我的ViewModel使用新的 viewModelScope .从它的实现中,我看到 Dispatchers.Main.immediate设置为默认值 CoroutineDispatcher对于 viewModelScope .
所以当打印当前 ThreadviewModelScope.launch它给了线程[main,5,main]
但这是我的问题。虽然这在主线程中运行,但以下代码对我有效,它执行网络调用。

viewModelScope.launch {
userRepo.login(email, password)
}
这里 userRepo.login(email, password)suspend函数,调用 Retrofit suspend功能。
那么,如果我的当前线程是主线程,这是如何工作的?

最佳答案

它之所以有效,是因为 Retrofit 的 suspend实现委托(delegate)给 Call<T>.enqueue .这意味着它已经默认在自己的后台执行器上执行,而不是使用调用者的Dispatcher。 .

关于android - Kotlin Coroutines viewModelScope 中的改造调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61215947/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com