我对这个节点js和sqlite事情有点新,但是我创建了一个简单的函数来从我的sqlite db获得1个结果
getOne: function() {
sql.get(`SELECT * FROM currency_list order by rowid desc limit 1`).then(row => {
if (!row) {
return console.log("no data");
} else {
return row;
}
});
},
然后我的来电者就是这样的
module.exports = {
run : (args, Client, msg, isOwner) => {
let results = db.getOne();
console.log("test result =>"+JSON.stringify(results));
}
};
我没有得到任何结果,因为我的控制台日志将显示函数中的Undefined。我可以知道如何使函数返回值吗?
答案 0 :(得分:2)
您将从已传递给then
的回调函数返回结果,而不是从getOne
函数返回。
要解决这个问题,你可以这样做:
getOne: function() {
return sql.get(`SELECT * FROM currency_list order by rowid desc limit 1`).then(row => {
if (!row) {
return console.log("no data");
} else {
return row;
}
});
}
得到这样的结果:
getOne().then(result => console.log(result));
或者,既然你在nodejs中这样做,你也可以这样做:
async function something(){
let result = await getOne();
console.log(result);
}
something();