在NodeJS的MySQL查询中使用Promises的问题

时间:2018-10-19 10:21:51

标签: javascript mysql node.js promise

我在NodeJS的快速服务器中有以下代码行:

sql = "SELECT mName FROM tokenMerchant " +
        "WHERE mUUID = ?";
        console.log("Merchant ID: ",tr.merchantId);
        pool.getConnection(function(err, conn){
            if (err) throw err;

            function getMerchantName(query){

                return new Promise(function (resolve, reject){
                    pool.query(query, [tr.merchantId], function(err, result){

                        if(err) return reject(err);

                        resolve(result);

                    });
                });

            };

            getMerchantName(sql).then(
                result => {
                    tr.secondaryName = result[0].mName;
                    console.log("Secondary Name: ",tr.secondaryName);
                    conn.release;
                    getUrl();
                }
            ).catch(
                error => {
                    console.log('Rejected');
                }
            );

        }); 

        function getRUrl(){//some codes here after promise resolved
}

这是控制台中的输出: enter image description here

我的问题是:

  1. 它不会触发getUrl()
  2. 它将在控制台中登录“次要名称”,然后还将记录“已拒绝”,这很奇怪,因为它是resolvedrejected

请告诉我上述代码有什么问题。谢谢。

0 个答案:

没有答案