Я пытаюсь манипулировать данными, полученными из API, используя модификацию и LiveData.Ниже мой код
viewModel.getTransactions("withdrawals").observe(this, Observer {
if (it.getError() == null) {
dataAdapter = ArrayList(it.getTransaction()?.data)
if (dataAdapter.size == 0) {
// no withdrawal
withdrawSum = 0
} else {
it.getTransaction()?.data?.forEachIndexed { _, element ->
withdrawSum += Math.abs(element.attributes.amount)
}
}
} else {
// Error
}
})
viewModel.getTransactions("deposits").observe(this, Observer {
if(it.getError() == null){
dataAdapter = ArrayList(it.getTransaction()?.data)
if(dataAdapter.size == 0){
// no deposit
depositSum = 0
}else {
it.getTransaction()?.data?.forEachIndexed{ _, element ->
depositSum+=Math.abs(element.attributes.amount)
}
}
} else {
// Error
}
})
// difference will be 0 since deposit = 0 and withdrawal = 0
difference = deposit - withdrawal
У меня возникла проблема с этой строкой difference = deposit - withdrawal
.Это вызывается немедленно, в отличие от ожидания завершения вызовов дооснащения перед выполнением вычитания.Что я могу сделать, чтобы решить эту проблему?Ужасным решением было бы вложить код депозита в вывод 100 *, есть ли более чистое решение?