【发布时间】:2019-05-13 10:46:45
【问题描述】:
我正在更新 else if 中的 totalPayable 值,但是当我调用 getOrder() 时,我无法在代码中的任何地方使用更新后的值。是 API 问题还是有人可以帮我处理代码?
else if (isOrderInitiated == false){
getCleintOrderFromApi();
debugPrint("ifelse" + totalPayable.toString());
}
getClientOrderFromApi() {
orders.clear();
totalPayable = 0.0;
api.getCleintOrder().then((list) {
list.forEach((order) {
if(order.is_placed) {
order.status = ORDER_STATUS[0];
} else if(!order.is_placed) {
order.status = ORDER_STATUS[2];
}
debugPrint("ORDER_STATUS from remote" + order.status);
for (var j = 0; j < order.items.length; j++) {
FoodItemOrder item = order.items[j];
totalPayable = totalPayable + item.unitPrice * item.quantity;
debugPrint(" total payable in order "+ totalPayable.toString());
}
orders.add(order);
debugPrint("itemsin order"+orders.last.items.length.toString());
});
currentOrderList.clear();
currentOrderList.addAll(orders);
orderItemsSink.add(orders);
});
}
}
getClientOrderFromApi() 中的debugPrint 显示更新后的结果,但如果debugPrint(" ifelse "+ totalPayable.toString()); 没有显示更新后的值,这就是为什么我使用totalPayable 时没有显示所需的值。
【问题讨论】: