Най-лесният начин за правилно улавяне на стойността на q променлива в затваряне в съвременния JavaScript е да се използва forEach :
queries.forEach(function(q) {
client.query(q[0], function(err, result) {
if(err) {
console.log(err);
} else {
q[1](result);
}
});
});
Ако не уловите стойността, вашият код отразява последната стойност, която q имаше, тъй като функцията за обратно извикване, изпълнена по-късно, в контекста на съдържащата функция.
forEach , чрез използване на функция за обратно извикване изолира и улавя стойността на q така че може да бъде правилно оценено от вътрешното обратно извикване.