我正在尝试向对象添加新属性。它似乎在这个范围内正常工作:
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]);
}
}
});
}