gpt4 book ai didi

android - Android Kotlin协程从生命周期范围返回对象

转载 作者:行者123 更新时间:2023-12-02 13:44:26 39 4
gpt4 key购买 nike

我有一个函数getNewProduct,它应该返回ProductCats类型的对象。在此函数内部,我调用了Async方法,并且由于该原因,我应该通过协程范围对其进行调用。这是代码:

    private fun addProductCatAsync(pc: ProductCats) = viewModelScope.async {
withContext(Dispatchers.Default){
productService.addProductCatToServer(pc)
}
}

fun getNewProduct(pc: ProductCats) = viewModelScope.launch{

if (_newProduct.value == null) {
val res = addProductCatAsync(pc).await()
_newProduct.value = res
println("NEW PRODUCT INSIDE COROUTINE: ${_newProduct.value}")
return@launch res
}
return@launch _newProduct.value
}

但是我从返回行 required: Unit, found: ProductCats?的编译时得到了这个错误。如何转换 getNewProduct函数并使它返回我想要的对象,而不是ob job

最佳答案

试试这个

fun getNewProduct(pc: ProductCats): ProductCats{
label@GlobalScope.launch{
if (_newProduct.value == null) {
val res = addProductCatAsync(pc).await()
_newProduct.value = res
println("NEW PRODUCT INSIDE COROUTINE: ${_newProduct.value}")
return@label res
}
return _newProduct.value
}



GlobalScope.launch will return job object.

关于android - Android Kotlin协程从生命周期范围返回对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60237980/

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