Javascript 在sqlite statment.all查询之后运行回调失败

Javascript 在sqlite statment.all查询之后运行回调失败,javascript,node.js,node-sqlite3,Javascript,Node.js,Node Sqlite3,在下面的函数中,我尝试在sqlite3中运行statment.all查询。 但是,函数结束时从未运行回调函数 即使经过彻底的调试和几次实验,我也无法准确地指出问题所在。 最奇怪的是,我有另一个类似的查询在代码中工作得非常好。这也包括在问题中 下面是有问题的代码: function gameSetup (questions_num){ var questions = []; getQuestions.all(questions_num, function (e, rows) { cons

在下面的函数中,我尝试在sqlite3中运行statment.all查询。 但是,函数结束时从未运行回调函数

即使经过彻底的调试和几次实验,我也无法准确地指出问题所在。 最奇怪的是,我有另一个类似的查询在代码中工作得非常好。这也包括在问题中

下面是有问题的代码:

function gameSetup (questions_num){
var questions = [];

getQuestions.all(questions_num, function (e, rows) {
    console.log("the callback is working!"); // this line never runs

    if (e) {
        return new Promise( (resolve, reject) => {
            reject(e);
        }); 
    }
    else{ 

        var answers, question;
        for (let row of rows)
        {
            answers = [row.correct_ans, row.ans2, row.ans3, row.ans4];
            answers = shuffle(answers);
            question = {"question":row.question, "ans1":answers[0] , "ans2":answers[1] , "ans3":answers[2] , "ans4":answers[3]};
            questions.push(question);   
            console.log(questions);
        }
    }

    return new Promise( (resolve, reject) => {
        resolve(questions);
    });
});}
这是sql语句:
var getQuestions=db.prepare(“从t_questions order by random()limit中选择*)

我还有另一个类似的代码:

app.get("/rooms", checkAuth, (req, res) => {
     getRooms.all((e, data) => {
        if(e) {
            return res.status(500).json(e);
        }
        else if (data.length == 0) {
            res.render('rooms', {items: data, error: "no rooms found"});
        }
        else
        {
            res.render('rooms', {items: data, error: "false"});         
        }
    });
});
声明如下:

var getRooms = db.prepare("select * from t_games where start_time is null");

我可能提供的信息太多,或者太少。由于这是我在该网站上的第一个问题,我们将不胜感激。我认为在声明中调用
random()
可能就是问题所在

如果您尝试以下操作,会发生什么情况:

var getQuestions = db.prepare("select * from t_questions order by ? limit ?")


另外,
random()
是否是您在某处定义的函数,用于返回要排序的列?或者可能是
Math.random()

如果从调用中删除
questions\u num
参数会发生什么?它似乎没有帮助,但感谢您的建议random是SQLite的内置函数
getQuestions.all([random(), questions_num], function (e, rows) { ...