gpt4 book ai didi

javascript - 在私有(private)函数的函数中应用变量 - Node.js

转载 作者:行者123 更新时间:2023-11-30 16:59:37 24 4
gpt4 key购买 nike

我将 Node.js 与 bluebird 一起使用,并尝试使用 defaultMySQLOutput 作为输出模型:

function defaultMySQLOutput(err, result){
return err ? reject(err) : resolve(result);
}

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

但这行不通。错误显示“resolve is undefined”,但是当我这样做时

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

它有效。

我也试过,

defaultMySQLOutput.call(this, err, results)

(new defaultMySQLOutput)

但无法实现。有没有办法使这项工作?任何引用将不胜感激。

提前致谢。

最佳答案

您可以使用闭包的强大功能来创建一个新函数,该函数可以正确访问 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));
});
}

关于javascript - 在私有(private)函数的函数中应用变量 - Node.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29116289/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com