Я новичок в NodeJS, и у меня возникают некоторые трудности с его асинхронной природой.
Я запрашиваю некоторые данные, используя асинхронную функцию.Моя вторая функция используется для получения идентификатора, зная имя (обе данные хранятся в данных, возвращаемых первой функцией).
Каждый раз, когда я получаю 'Found it' в консоли, но возвращение выполняется до завершения цикла, и я получаю 'undefined'.
Должен ли я использовать обратный вызов или использовать async& Ждите ?Даже после большого количества исследований об асинхронности, ожидании и обратных вызовах я не могу найти способ заставить его работать!
async function getCustomers() {
try {
var customers = await axios({
//Query parameters
});
return customers;
}
catch (error) {
console.log(error);
}
}
function getCustomerId(customerName){
var customerId = null;
getCustomers().then(function(response){
for (const i of response.data){
console.log(i['name']);
if(i['name'] == customerName){
console.log('Found it !'); //This got displayed in the console
customerId = i['id'];
return customerId; //This never return the desired value
}
}
});
}
console.log(getCustomerId('abcd'));
Спасибо за любую помощь!