Невозможно отправить в канал Coroutines

Я практикую Coroutines Channel, и мне интересно, почему репозиторий.getAllRates() не срабатывает, даже если мой код достигает sellCurrencyChannel.send(CurrencyRate("", 0.0))? Я также подозреваю, что sellCurrencyChannel.send() не удалось.

          private val sellCurrencyChannel = Channel<CurrencyRate>()
    val sellCurrency = sellCurrencyChannel.receiveAsFlow()
    val sellAmount: LiveData<Double>? = null

    val allUserBalance = repository.getAllUserBalance()
        .flatMapLatest {
            if (it.isNullOrEmpty()) {
                repository.setUserBalance(
                    UserBalance(
                        "EUR",
                        1000.0
                    )
                )
            } else {
                viewModelScope.launch {
                    sellCurrencyChannel.send(CurrencyRate("", 0.0))
                }
            }
            return@flatMapLatest repository.getAllUserBalance()
        }
        .stateIn(
            viewModelScope,
            SharingStarted.Lazily,
            null
        )

    val allRates = sellCurrency.flatMapLatest { sellCurrency ->
        repository.getAllRates(
            sellCurrency.currency,
            onAPISuccess = {

            },
            onAPIFailed = {
                viewModelScope.launch {
                    eventChannel.send(Event.ShowErrorMessage(it))
                }
            }
        )
    }.stateIn(viewModelScope, SharingStarted.Lazily, null)

0 ответов