Привет, я новичок в Kotlin
Я пытаюсь написать следующий код -
private fun syncLocalCartItemsToNetwork(tokenObject: MyVerteUserAuthTokenObject) {
val failedSyncedProducts: MutableList<String> = mutableListOf()
locallySavedCartModels.forEach { //I need to make the code wait until all callbacks from this loop finishes
ShoppingCartUtils.addItemToCart(tokenObject.token, it, this@ShoppingCartActivity, object : ShoppingCartUtils.OnMyVerteCartProductsSyncListener {
override fun onProductSyncFailed(productID: String) {
failedSyncedProducts.add(productID)
}
})
}
if (failedSyncedProducts.isNotEmpty()) {
val builder = AlertDialog.Builder(this)
builder.setTitle("Shopping Cart was not fully synced")
builder.setMessage("The following items were not synced well due to stock availability, please re add them - \n\n" +
"${failedSyncedProducts.forEach { it + "\n\n" }}")
builder.setPositiveButton("Confirm") { dialog, _ ->
dialog.dismiss()
}
val dialog: AlertDialog = builder.create()
dialog.show()
}
Toast.makeText(this@ShoppingCartActivity, "finished", Toast.LENGTH_SHORT).show()
}
Как видите, я перебираю все locallySavedCartModels
и возможно получить из него результат.
Мне нужна опция, чтобы заставить функцию ждать, пока все обратные вызовы не завершатся sh из forEach l oop, только затем продолжить мой код, чтобы проверить, является ли моя строка список пуст или нет.
Как я могу сделать это, используя Kotlin?