Javascript 从方法(NODEJS)中的回调获取主类
我需要从数据库中填写个人资料。 但无法获取主类的属性。请告诉我可以解决什么问题 类别:Javascript 从方法(NODEJS)中的回调获取主类,javascript,node.js,class,methods,callback,Javascript,Node.js,Class,Methods,Callback,我需要从数据库中填写个人资料。 但无法获取主类的属性。请告诉我可以解决什么问题 类别: class Operator { constructor(id) { this.operator_id = id; this.profiles = {}; } getProfiles(){ return this.profiles; } loadProfiles(){ console.log('load
class Operator {
constructor(id) {
this.operator_id = id;
this.profiles = {};
}
getProfiles(){
return this.profiles;
}
loadProfiles(){
console.log('loading profiles');
console.log(this.profiles);
db.queryAll(`
SELECT
profiles.id,
profiles.domain_id,
profiles.name
FROM
operators_to_profiles
LEFT JOIN profiles ON profiles.id = operators_to_profiles.profile_id
WHERE operator_id = ${this.operator_id}
`, function (data){
console.log(Operator.getProfiles());
});
}
}
module.exports = {
create : function (operator_id) {
return new Operator(operator_id);
}
};
let operator = Operators.create(operatorId);
operator.loadProfiles();
用法:
class Operator {
constructor(id) {
this.operator_id = id;
this.profiles = {};
}
getProfiles(){
return this.profiles;
}
loadProfiles(){
console.log('loading profiles');
console.log(this.profiles);
db.queryAll(`
SELECT
profiles.id,
profiles.domain_id,
profiles.name
FROM
operators_to_profiles
LEFT JOIN profiles ON profiles.id = operators_to_profiles.profile_id
WHERE operator_id = ${this.operator_id}
`, function (data){
console.log(Operator.getProfiles());
});
}
}
module.exports = {
create : function (operator_id) {
return new Operator(operator_id);
}
};
let operator = Operators.create(operatorId);
operator.loadProfiles();
输出:
class Operator {
constructor(id) {
this.operator_id = id;
this.profiles = {};
}
getProfiles(){
return this.profiles;
}
loadProfiles(){
console.log('loading profiles');
console.log(this.profiles);
db.queryAll(`
SELECT
profiles.id,
profiles.domain_id,
profiles.name
FROM
operators_to_profiles
LEFT JOIN profiles ON profiles.id = operators_to_profiles.profile_id
WHERE operator_id = ${this.operator_id}
`, function (data){
console.log(Operator.getProfiles());
});
}
}
module.exports = {
create : function (operator_id) {
return new Operator(operator_id);
}
};
let operator = Operators.create(operatorId);
operator.loadProfiles();
加载剖面
{}
TypeError:Operator.getProfiles不是函数
已解决:
class Operator {
constructor(id) {
this.operator_id = id;
this.profiles = {};
}
getProfiles(){
return this.profiles;
}
loadProfiles(){
console.log('loading profiles');
console.log(this.profiles);
db.queryAll(`
SELECT
profiles.id,
profiles.domain_id,
profiles.name
FROM
operators_to_profiles
LEFT JOIN profiles ON profiles.id = operators_to_profiles.profile_id
WHERE operator_id = ${this.operator_id}
`, function (data){
console.log(Operator.getProfiles());
});
}
}
module.exports = {
create : function (operator_id) {
return new Operator(operator_id);
}
};
let operator = Operators.create(operatorId);
operator.loadProfiles();
您应该将
操作符.getProfiles()
设置为this.getProfiles()
(因为`getProfiles()不是静态的),并更改将其包装为箭头函数的函数。通过在下面添加答案(而不是编辑自己的问题),您可以自由回答自己的问题