如何将SQL查询结果存储在JavaScript变量中以在全局范围内使用?
这里是初学者,我试图将SQL查询的结果存储到JavaScript变量中,以便能够从全局范围访问它,以便在其他代码中使用 代码如下: const latestRunContacts==>{ db.all `选择来自联系人的电子邮件,其中RunID=SELECT MAXUID FROM Run\u tbl`, 错误,行=>{ console.logrow; } ; }; 这会记录我试图获取的值,但一旦我尝试这样做: const latestRunContacts==>{ db.all `选择来自联系人的电子邮件,其中RunID=SELECT MAXUID FROM Run\u tbl`, 错误,行=>{ 返回行; } ; }; console.loglatestRunContacts; 然后返回未定义的。。。 由于typeof row是一个对象,我尝试声明一个对象,并将SQL查询的结果分配给它,然后立即调用函数,如下所示: 让contactEmail={ 电子邮件:功能延迟联系人{ db.all`SELECT email FROM Contacts\u tbl其中UID='1',err,row=>{ 返回行; }; }, }; console.logcontactEmail.email; 但这也只是返回未定义的如何将SQL查询结果存储在JavaScript变量中以在全局范围内使用?,javascript,node.js,sqlite,Javascript,Node.js,Sqlite,这里是初学者,我试图将SQL查询的结果存储到JavaScript变量中,以便能够从全局范围访问它,以便在其他代码中使用 代码如下: const latestRunContacts==>{ db.all `选择来自联系人的电子邮件,其中RunID=SELECT MAXUID FROM Run\u tbl`, 错误,行=>{ console.logrow; } ; }; 这会记录我试图获取的值,但一旦我尝试这样做: const latestRunContacts==>{ db.all `选择来自联系
我想做的事可能吗?如果是这样,这与回调和javascript的异步特性有什么关系 解决您的问题的快速方法是:
let latestContacts;
db.all(
`SELECT email FROM Contacts_tbl WHERE RunID = (SELECT MAX(UID) FROM Run_tbl)`,
(err, rows) => {
if (err) throw err;
latestContacts = rows;
console.log(latestContacts);
},
);
我建议阅读这篇文章,总结回调、承诺和异步函数:它起作用了:这篇文章确实有帮助,添加了回调函数,并将查询结果分配给回调内的变量。