gpt4 book ai didi

javascript - NODE.js - 如何在其他方法中使用方法

转载 作者:太空宇宙 更新时间:2023-11-04 02:53:14 24 4
gpt4 key购买 nike

我想使用同一个类中其他方法中的方法来计算数据库中的一些数据,如下所示,但我只得到错误

[TypeError: Object #<Query> has no method 'methodMaxLct']"
 exports.UserClass = function() {
this.methodMaxLct = function(lct, callback) {
var counting = Math.ceil(Math.pow(1.15, (lct - 1)) * 10) * 10;
callback(counting);
this.methodGetData = function(idu, callback) {
connection = mysql.createConnection(dbconfig);
connection.query(dataUserResources, [idu], function(err, results, fields) {
if (err) throw err;
if (results.length == 0) {
callback = 0;
} else {
for (var i in results) {
var dataU = results[i];
}
dataU.enMax = 30;
var ap = this.methodMaxLct(dataU.lct, function(answer) {
dataU.lctMax = answer;
});
callback(dataU);
}
connection.end();
});
};
};

任何人都可以给我提示或相同的线索如何以正确的方式做到这一点?

最佳答案

像这样尝试一下。您必须将 this 对象存储到变量中,以便可以在内部函数中使用它。 this 根据执行上下文而不同。

exports.UserClass = function() {
var self = this;
this.methodMaxLct = function(lct, callback) {
var counting = Math.ceil(Math.pow(1.15, (lct - 1)) * 10) * 10;
callback(counting);
this.methodGetData = function(idu, callback) {
connection = mysql.createConnection(dbconfig);
connection.query(dataUserResources, [idu], function(err, results, fields) {
if (err) throw err;
if (results.length == 0) {
callback = 0;
} else {
for (var i in results) {
var dataU = results[i];
}
dataU.enMax = 30;
var ap = self.methodMaxLct(dataU.lct, function(answer) {
dataU.lctMax = answer;
});
callback(dataU);
}
connection.end();
});
};
};

关于javascript - NODE.js - 如何在其他方法中使用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35015417/

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