Я не могу найти подходящее решение этой проблемы.
Я пытаюсь использовать цикл foreach для вызова данных.Я пробовал несколько вариантов упаковки этого в обещаниях, но не могу остановить эту функцию от продолжения до завершения цикла.Надеясь, что кто-то может иметь некоторую проницательность.
async function getData(){
temparray [] = { data to iterate over };
await getAgents();
console.log('done');
function getAgents(){
return new Promise(resolve => {
temparray.forEach((deal) => {
pipedrive.Persons.get(deal.agent, function(err, person) {
if (err) throw err;
console.log("trying to get agent " + deal.agent)
console.log(person.name);
});
});
}); // end of promise
};
};
Итак, я пытаюсь создать обещание, которое разрешается после завершения всех асинхронных вызовов, но процесс запускается до завершения.Следовательно, «done» регистрирует консоль до того, как функция getAgents () завершила и зарегистрировала имена.Я подозреваю, что это связано с обратными вызовами, но я попытался преобразовать его в обещание, я попытался использовать util.promiseify, и я смотрел на создание массива обещаний, а затем с использованием обещания. Но непроверил это.