Javascript 在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

我试图返回查询的结果,但总是未定义。我不确定我做错了什么。我正在使用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,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
变量。您需要做的是返回承诺(此处为快速教程:)或设置在回调中进行修改(of
tx.executeSql
)。只有这样,结果集才可用