巢状函数的匿名函数的回传问题
发布于 6个月前 作者 grass0916 277 次浏览

前辈们午安,

小弟尝试在连结 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.
});

@JacksonTian

谢谢前辈大力相助,

已经解决了。

回到顶部