在私有函数中应用variables – Node.js

我正在使用蓝鸟的Node.js,并试图使用defaultMySQLOutput作为输出的模型,例如:

function defaultMySQLOutput(err, result){ return err ? reject(err) : resolve(result); } function something(){ return new Promise(function(resolve, reject){ mysql.query(q, defaultMySQLOutput); }); } 

但是这不起作用。 错误说“解决不确定”,但是当我这样做

 mysql.query(q, function(err, results){ resolve(results); }); 

有用。

我也试过了,

 defaultMySQLOutput.call(this, err, results) 

 (new defaultMySQLOutput) 

但无法做到这一点。 有没有办法做到这一点? 任何参考将不胜感激。

提前致谢。

您可以使用闭包的强大function来创build一个新的function,以便正确resolvereject

 function defaultMySQLOutput(resolve, reject) { return function (err, result) { return err ? reject(err) : resolve(result); } } function something(){ return new Promise(function(resolve, reject){ mysql.query(q, defaultMySQLOutput(resolve, reject)); }); }