オブジェクトに新しいプロパティを追加しようとしています。このスコープから正しく動作するようです:
rows.forEach(function (row, i) {
row.foo = i;
});
console.log(rows) を実行すると、foo が正しい値で追加されたことがわかります。forEach 内に別のコールバックがある場合、変更はもう表示されません。なんで?
rows.forEach(function (row, i) {
getUserById(row.user_id, function(user) {
row.foo = i;
});
});
はい、コールバック get が正しく起動されました。ここに getUserById があります
function getUserById(userId, callback) {
connection.query('select * from t_user where id = ?', [userId], function(err, results) {
if (err) {
console.log("repo error");
} else {
if (results.length == 0) {
callback(null);
} else {
callback(results[0]);
}
}
});
}