Как правильно использовать promise в цикле?
В общем то в цикле надо сделать несколько запросов на API и получить данные.
let i = 0;
while (i < selectedData.length) { // selectedData.length = 5.
const selectingSID = selectedData[i].STATUS_ID;
const cmP = new Promise((resolve, reject) => {
BX24.callMethod("crm.lead.list", {
filter: {
"STATUS_ID": selectingSID
},
select: ["STATUS_ID"]
}, function(result) {
if (result.error()) console.error(result.error());
else {
let resultData = result.data();
let leadRusName = statusTitles[selectingSID];
leadsObj[leadRusName] = resultData.length + resultData.length;
if (result.more()) {
result.next();
// Если есть следующая страница данных, то перейти на неё. При выборке одной из selectingSID result.next(); срабатывает три раза
} else {
resolve();
}
}
});
});
i++;
}
В общем-то при выборке одной из selectingSID, код срабатывает ещё два раза и BX24.callMethod на этой итерации уходит в конец стека после того как выполнится for.