巢状函数的匿名函数的回传问题
前辈们午安,
小弟尝试在连结 MySQL 时遇到了一些小问题。
问题如下:
我想要将 dbclient.query 的结果回传给呼叫 GetUsers() 的程式码,
但因为 dbclient.query 的 rows 仅存在于匿名函数(lambda)之中。
GetUsers = function () {
dbclient.query("SELECT * FROM user", function (err, rows) {
for (var i = 0 ; i < rows.length ; i++)
console.log(rows[i].uid + " " + rows[i].email);
});
}
GetUsers();
如今我想要将 SQL query 的结果给挪到外部使用,
但我不大想使用全域变数(global)暴力解决,
请问前辈们有什么建议吗?
GetUsers = function () {
dbclient.query("SELECT * FROM user", function (err, rows) {
return rows;
});
}
rows = GetUsers();
2 回复
GetUsers = function (callback) {
dbclient.query("SELECT * FROM user", function (err, rows) {
callback(rows);
});
}
GetUsers(function (rows) {
// here is your rows.
});