Javascript 在react native中从sqlite存储返回查询结果时未定义
我试图返回查询的结果,但总是未定义。我不确定我做错了什么。我正在使用react native和sqlite存储插件Javascript 在react native中从sqlite存储返回查询结果时未定义,javascript,reactjs,sqlite,react-native,Javascript,Reactjs,Sqlite,React Native,我试图返回查询的结果,但总是未定义。我不确定我做错了什么。我正在使用react native和sqlite存储插件 let SQLite = require('react-native-sqlite-storage') let db = SQLite.openDatabase({name : "db.v1.33", createFromLocation : "~db.db"}); let sqlResults; export function GetQuestions(sqlType,ques
let SQLite = require('react-native-sqlite-storage')
let db = SQLite.openDatabase({name : "db.v1.33", createFromLocation : "~db.db"});
let sqlResults;
export function GetQuestions(sqlType,questionsCount) {
let sqlQuestions = `SELECT * FROM Questions WHERE Type IN (${sqlType}) ORDER BY RANDOM() LIMIT ${questionsCount}`
db.transaction((tx) => {
tx.executeSql(sqlQuestions, [], (tx, results) => {
sqlSize = results.rows.length;
sqlResults = results;
});
});
return sqlResults;
}
这方面的问题是
db.transaction
是异步的,这意味着在代码的其余部分继续运行时需要一些时间。因此,db.transaction
被启动,然后它立即返回尚未设置的sqlResults
变量。您需要做的是返回承诺(此处为快速教程:)或设置在回调中进行修改(oftx.executeSql
)。只有这样,结果集才可用