У меня есть функция 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
?