Я новичок в node.js
. Я пытаюсь использовать его для создания бота. Мне нужно выполнить запрос в функции (например, checkUser
), а затем продолжить оставшуюся часть кода. но когда программа достигает функции после запроса, она не выполняет ее и возвращается к основному блоку.
поэтому результат функции checkuser
находится на рассмотрении, и я не могу его использовать !!
const SDK = require("balebot");
const BaleBot = SDK.BaleBot;
let bot = new BaleBot("5abf341d8924a1f41a00b08d3aebc205922f465b");
////connect to db
var sql = require('mssql');
var config = {
user: 'adorfaki',
password: '********',
server: '192.168.44.89',
database: 'MediatorData',
port: 1433
};
var dbcon = new sql.ConnectionPool(config);
dbcon.connect().then(function () {
var request = new sql.Request(dbcon);
//start a conversation
const Conversation = SDK.Conversation;
let conv = new Conversation();
bot.setConversation(conv);
let tracer = conv.startsWith(['/start', 'start', 'Start', '/Start']);
tracer.then((message, session, responder) => {
responder.reply("Enter your user ID:");
session.next();
}).then((message, session, responder, ) => {
if (message.text.length != 6) {
responder.reply("User ID's length is incorrect!");
} else {
var UserID = ReturnUserID(message.text);
var mIds = ReturnMessagesIds(UserID)
for (var i = 1; i <= mIds.length; i++) {
var Text = ReturnMessageText(i);
responder.reply(text.MessageText);
}
async function ReturnUserID(Response) {
try {
var result = await CheckUser(Response);
return true;
} catch (error) {
responder.reply(error)
};
}
async function ReturnMessagesIds(i) {
try {
var result = await GetMessageIds(i);
return result;
} catch (error) {
responder.reply(error)
};
}
async function ReturnMessageText(MId) {
try {
var result = await SelectMessageText(MId);
return result[0];
} catch (error) { responder.reply(error) };
}
}
});
function CheckUser(Code) {
return new Promise(function (resolve, reject) {
request.query("select id from Recievers where UserCode=" + Code), then(function (Codes) {
if (Codes.recordset.length != 0) {
resolve(Codes.recordset)
} else {
reject("The User ID is incorrect!")
}
});
});
}
function GetMessageIds(Uid) {
return new Promise(function (resolve, reject) {
request.query("select id from MessageSchedule where Userid=" + Uid).then(function (MessageIdList) {
if (MessageIdList.recordset.length != 0) {
resolve(MessageIdList.recordset)
} else {
reject("You don't have any message!")
}
});
});
}
function SelectMessageText(index) {
return new Promise(function (resolve, reject) {
request.query("select MessageText from Messages m inner join MessageSchedule s on m.id=s.MessageID where s.id=" + [index]).then(function (texts) {
if (texts.recordset.length != 0) {
resolve(texts.recordset)
} else {
reject("Try Later!")
}
});
});
}
});