连接池使用跳过功能主体

时间:2018-11-28 22:18:14

标签: mysql node.js

我是一个完整的Node noob,我正在努力理解为什么在调用此函数时会跳过方法的整个执行过程。如果我继续使用调试器,我会从字面上看到执行从第一行(函数声明)到最后一行,而中间没有发生任何变化。

非常感谢!老实说,我真的很难理解Node代码的异步/等待特性,因此,如果您还有足够的资源来解决这一问题,我将不胜感激。

var mysql = require('mysql');

var connPool = mysql.createPool({
host: "secret",
user: "secret",
password: "secret"
});

...
There is code executing here that eventually calls the function below
...

function getOrgAndAgentId(emailAddress){
connPool.getConnection(function(err, conn){
    if(err){
        console.log(err);
        return;
    }

    var sql = getAgentIdAndOrgIdSql(emailAddress);
    conn.query(sql, [], function(err, result){
        conn.release();
        if(err){
            console.log("TPM Query Error: " + err)
            return;
        }

        var ret = {
            agentId: result.row[0][agentIdAndOrgIdEnum.agentId],
            orgId: result.row[0][agentIdAndOrgIdEnum.orgId]
        }

        return ret;
    });
});
}

0 个答案:

没有答案