Я пытаюсь получить значение переменной "Ajuste" вне функции, потому что мне нужно, чтобы Alexa сказала это в последнем возврате другой функции.
Значение "Ajuste" переменная должна быть использована в переменной "speakOutput", которая находится за пределами этой функции, но, наконец, она показывает мне, что значение равно undefined
.
Это фрагмент, с которым у меня возникают проблемы, соединение с базой данных Это нормально, и запрос также выполняется без проблем, потому что значение console.log(result.recordset [0] .Consecutive);
это правильно.
var Inventario = {
user: 'user',
password: 'pass',
server: 'server\\instance',
database: 'db'
};
const InventarioIngresoIntentHandler = {
canHandle(handlerInput) {
return Alexa.getRequestType(handlerInput.requestEnvelope) === 'IntentRequest' &&
Alexa.getIntentName(handlerInput.requestEnvelope) === 'InventarioIngresoIntent';
},
handle(handlerInput) {
var DocInventario = handlerInput.requestEnvelope.request.intent.slots.Documento.value
var Ajuste;
sql.connect(Inventario, function(err) {
if (err) console.log(err);
var request = new sql.Request();
request.query('select * from Ajuste Where ConsecutivoExterno =' + DocInventario, function(err, result) {
if (err) console.log(err)
console.log(result.recordset[0].Consecutivo);
console.log(result.recordset[0].ConsecutivoExterno);
Ajuste = result.recordset[0].Consecutivo;
sql.close();
})
});
const speakOutput = Ajuste + ', Correcto.' + DocInventario
return handlerInput.responseBuilder
.speak(speakOutput)
.withSimpleCard(SkillName, speakOutput)
.reprompt(speakOutput)
.getResponse();
}
};