我有问题为什么查询中的变量不会递增? 我的代码:
function processMessage(event) {
if (!event.message.is_echo) {
let message = event.message;
let senderId = event.sender.id;
console.log("Received message from senderId: " + senderId);
console.log("Message is: " + message);
console.log();
var user = {
user_name: '',
question_index: 0,
}
if (message.quick_reply.payload === 'Pass') {
connection.query("SELECT text FROM quiz_questions WHERE quiz_id = ?", [question_index], function(error, results, fields) {
if (error) throw error;
let jsonQuestionResult = getRealResults(results);
connection.query("SELECT text FROM question_option WHERE quiz_question_id = ?", [question_index], function(error, results, fields) {
if (error) throw error;
let jsonAnswerResult = getRealResults(results);
console.log(jsonAnswerResult[0]);
sendQuestionAnswer(senderId, jsonQuestionResult[0].text, jsonAnswerResult[0].text, jsonAnswerResult[1].text, jsonAnswerResult[2].text);
user.question_index++;
})
})
}
}
}
我增加了user.question_index但是当我调用processMessage函数时它不适用那里有什么问题?或者当我用有效载荷(通过)调用快速回复时,如何使用它来显示数据库中的下一列?
答案 0 :(得分:1)
在processMessage之外定义您的用户变量。每次调用方法时,它都会重新初始化为默认值0.因此,如果要保留值
var user = {
user_name: '',
question_index: 0,
}
function processMessage(event) {
if (!event.message.is_echo) {
let message = event.message;
let senderId = event.sender.id;
console.log("Received message from senderId: " + senderId);
console.log("Message is: " + message);
console.log();
if (message.quick_reply.payload === 'Pass') {
connection.query("SELECT text FROM quiz_questions WHERE quiz_id = ?", [question_index], function(error, results, fields) {
if (error) throw error;
let jsonQuestionResult = getRealResults(results);
connection.query("SELECT text FROM question_option WHERE quiz_question_id = ?", [question_index], function(error, results, fields) {
if (error) throw error;
let jsonAnswerResult = getRealResults(results);
console.log(jsonAnswerResult[0]);
sendQuestionAnswer(senderId, jsonQuestionResult[0].text, jsonAnswerResult[0].text, jsonAnswerResult[1].text, jsonAnswerResult[2].text);
user.question_index++;
})
})
}
}
}