Здесь проблема в том, что code после цикла for выполняется до того, как выполнение цикла for завершится. Вот code, который вы можете проверить:
}
Журнал, который я получаю, выглядит следующим образом:
Почему я получаю журнал 6, даже если выполнение цикла for продолжается? Какая-то проблема, связанная с потоком. Пожалуйста, помогите.
bool setBmSelectedFilter(BmCustomFilterData? customFilterData, isAfterDelete,
{bool isCalledAfterSave = false,
String? savedFilterName,
String? oldSelectedId}) {
if (isAfterDelete) {
bool isDefaultExist = false;
bool isSelectedExist = false;
if (customFilterData?.bmCustomFilters != null) {
for (var customFilter in customFilterData!.bmCustomFilters!) {
if (customFilter.options != null &&
customFilter.options!.isNotEmpty) {
// Check if there is any option with isDefault = 1
for (var option in customFilter.options!) {
if (option.isDefault == 1) {
print(">>>>>>>>>>>> log 1");
isDefaultExist = true;
}
if (option.isSelected == true) {
print(">>>>>>>>>>>> log 2");
isSelectedExist = true;
}
// If both are found, we can exit the loop early
if (isDefaultExist && isSelectedExist) {
print(">>>>>>>>>>>> log 3");
break;
}
}
// If no isDefault = 1 exists, set the first option to isDefault = 1 and others to 0
if (!isDefaultExist) {
print(">>>>>>>>>>>> log 4");
for (var i = 0; i < customFilter.options!.length; i++) {
customFilter.options![i].isDefault = (i == 0) ? 1 : 0;
}
}
// Handle the deletion cases
if (isSelectedExist) {
print(">>>>>>>>>>>> log 5");
//none
print("true");
} else {
print(">>>>>>>>>>>> log 6");
// If isSelected = true record was deleted or options are empty
for (var option in customFilter.options!) {
if (option.name == 'all_open_bills'.tr()) {
option.isSelected = true;
bmAppliedFilterName = option.name;
} else {
option.isSelected = false;
}
}
}
} else {
print(">>>>>>>>>>>> log 7");
// Handle the case where options are empty after deletion
for (var customFilter in customFilterData.bmCustomFilters!) {
if (customFilter.options != null) {
for (var option in customFilter.options!) {
if (option.name == 'all_open_bills'.tr()) {
option.isSelected = true;
option.isDefault = 1;
} else {
option.isSelected = false;
option.isDefault = 0;
}
}
}
}
}
}
}
}
this.customFilterData = customFilterData;
return true;
>>>>>>>>>> log 1
>>>>>>>>>> log 6
>>>>>>>>>> log 2
>>>>>>>>>> log 3
>>>>>>>>>> log 5
Регина
Вопрос задан15 марта 2024 г.