Ниже приведена часть моей функции, которая должна выполняться асинхронно. почему в месте с комментариями оно не определено, так как функция возвращает значение. И если мой код неверен, могу ли я посмотреть, как он должен выглядеть правильно?
async function addAvailableFunds(
recipientAvailableFunds,
amountMoney,
recipientId,
transferCurrencyId,
) {
const convertedAmountMoney = await currencyConversion(
transferCurrencyId,
recipientCurrencyId,
amountMoney,
);
console.log(
'convertedAmountMoney',
convertedAmountMoney,
); // undefined
async function currencyConversion(
transferCurrencyId,
recipientCurrencyId,
amountMoney,
) {
console.log('transferCurrencyId', transferCurrencyId);
console.log('recipientCurrencyId', recipientCurrencyId);
console.log('amountMoney', amountMoney);
await Currency.findOne({
where: {
id: recipientCurrencyId,
},
}).then(async isRecipientCurrencyId => {
if (isRecipientCurrencyId) {
const mainCurrency = isRecipientCurrencyId.main_currency;
const recipientCurrencyExchangeRate =
isRecipientCurrencyId.currency_exchange_rate;
console.log('mainCurrency', mainCurrency);
console.log(
'recipientCurrencyExchangeRate',
recipientCurrencyExchangeRate,
);
await Currency.findOne({
where: {
id: transferCurrencyId,
},
}).then(isTransferCurrencyId => {
if (isTransferCurrencyId) {
const transferCurrencyExchangeRate =
isTransferCurrencyId.currency_exchange_rate;
console.log(
'transferCurrencyExchangeRate',
transferCurrencyExchangeRate,
);
if (mainCurrency) {
const convertedAmountMoney =
(amountMoney / transferCurrencyExchangeRate) *
recipientCurrencyExchangeRate;
console.log('convertedAmountMoney', convertedAmountMoney);
return convertedAmountMoney; // return number
}
}
});
}
});
}
console.log возвращает число, поэтому я не знаю, что происходит. console.log возвращает число, поэтому я не знаю, что происходит.