所以我有一个使用SQLite的数据库,但我很高兴,但是当我尝试将值输出到局部变量时,我收到此错误:
foo[n]
我的代码:
int
答案 0 :(得分:1)
正如@Lemix在评论中所说,sql.get
是一个异步函数,console.log
将在完成之前执行。
还要注意变量scope 。 var UserMurderCoins
在then
函数内定义,并且不在范围内访问。因此,即使该语句在sql.get.then
之后执行,也不会被定义。
您可以在console.log
函数内运行then
或全局定义变量,而仅在then
函数内分配变量。
更新:
要更加满意Promise,可以使用async await
语法。
我修改了您的代码,但进行了一些改动以使其正常运行。
async function f() {
var UserMurderCoins = (await sql.get(`SELECT * FROM monney WHERE userId ="${message.author.id}"`)).coins;
console.log(UserMurderCoins);
}
f();