У меня есть четыре функции, в которых каждая функция имеет цикл внутри.На основании завершения первого цикла функции должна быть вызвана вторая функция, а завершение второго цикла функций должно вызвать третью функцию.
Я использовал async и await, но это не сработало.
Может кто-нибудь сказать мне, что не так в моем коде?
Первая функция:
selectedUser = (userName, userId) => {
this.isFilterByNameSelected = true;
this.props.dispatch(fetchDuesChitties()).then((datas) => {
Object.keys(datas).map((key) => {
if (datas[key].chittieUsers) {
let chittieUsers = datas[key].chittieUsers;
Object.keys(chittieUsers).map((userKey) => {
if (chittieUsers[userKey].userId === userId) {
this.userTicketNumber[key] = {
name: userName,
chitId: datas[key].chitId,
chittieId: key,
chitName: datas[key].chitName,
chittieName: datas[key].chittyName,
auctionsCompleted: datas[key].auctionsCompleted,
userId: userKey
};
}
});
}
});
this.getChittiePayment();
});
};
Вторая функция:
getChittiePayment = () => {
Object.keys(this.userTicketNumber).map((key) => {
let totalAmount = 0;
let auctionsCompleted = this.userTicketNumber[key].auctionsCompleted;
let chitId = this.userTicketNumber[key].chitId;
let paymentDetails = this.props.chits[chitId].paymentDetails;
for (var i = 0; i < auctionsCompleted; i++) {
totalAmount += parseInt(paymentDetails[i].dueAmount);
}
this.userTicketNumber[key].totalAmount = totalAmount;
});
this.getUsersDuePayment();
}
Третья функция:
getUsersDuePayment = () => {
Object.keys(this.userTicketNumber).map((key) => {
let customerId = this.userTicketNumber[key].userId;
let auctionsCompleted = this.userTicketNumber[key].auctionsCompleted;
this.props.dispatch(fetchPaymentsByUserId(customerId, auctionsCompleted)).then((payments) => {
this.userTicketNumber[key].amountPaid = payments;
});
});
this.getBalanceAmount();
}
Четвертая функция:
getBalanceAmount = () => {
Object.keys(this.userTicketNumber).map((key) => {
let userKey = this.userTicketNumber[key];
if (userKey.totalAmount && userKey.amountPaid) {
let balanceAmount = userKey.totalAmount - userKey.amountPaid;
this.userTicketNumber[key].pendingAmount = balanceAmount;
}
});
this.setState({ userFilter: this.userTicketNumber });
}