У меня есть цикл for, который запрашивает базу данных. Я хочу, чтобы вызовы БД были асинхронными. Это структура кода:
for(var idx=0; idx<arr.rows.length; idx++)
{
db.query(`SELECT ...`)
.then((result) => {
console.log("Value is: " + result.rows[idx].val);
});
}
Как видите, я хочу, чтобы параметр idx
был напечатан в разрешении (db.query
возвращает обещание). Но таким образом печатается неправильный idx
, потому что значение idx
увеличивается при разрешении обещания.
Как правильно передать переменную idx
? Спасибо.