Skip to content

Instantly share code, notes, and snippets.

@arielivandiaz
Created December 1, 2018 15:17
Show Gist options
  • Save arielivandiaz/5707390b70bd8ea17ae7493518a9db07 to your computer and use it in GitHub Desktop.
Save arielivandiaz/5707390b70bd8ea17ae7493518a9db07 to your computer and use it in GitHub Desktop.
Resolving promises in a for loop - NodeJS / MySQL
let mysql = require('mysql');
let connection = mysql.createConnection({
host: "localhost",
user: "root",
password: "",
});
connection.query('USE test_database');
let run_mysql = (mysql_query) => {
return new Promise(function (resolve, reject) {
connection.query(mysql_query, function (err, rows) {
if (err) {
return reject(err);
}
resolve(rows);
});
});
}
const sF_classbooking = 'SELECT * FROM `users_logs` ORDER BY `ts_create` DESC LIMIT 10';
const sF_userName = 'SELECT `name`,`surname` FROM `users_info` WHERE id='; //2865
run_mysql(sF_classbooking).then(function (rows) {
let promises = [];
for (var j = 0; j < rows.length; j++) {
promises.push(run_mysql(sF_userName + rows[j].id_user));
}
Promise.all(promises)
.then(function (data) {
let logs = [];
for (var i = 0; i < data.length; i ++) {
var obj = {};
obj.user = data[i][0].name + ', ' + data[i][0].surname;
obj.userId = rows[i].id_user;
obj.log = rows[i].id_logs;
logs.push(obj);
}
console.log(logs);
})
.catch((err) => setImmediate(() => {
throw err;
}));
}).catch((err) => setImmediate(() => {
throw err;
}));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment