我有一个问题,有可能再次调用在handlerIntent中执行的方法吗?你什么时候回来说话?我需要重新运行: const response =等待逻辑.consultaService(1,1,1100);
通话结束后
无需用户再次说出命令
在用户说停止之前,我需要执行自动操作
返回handlerInput.responseBuilder .speak(speechText) .reprompt('tss') .getResponse();
谢谢。
代码:
const CustomServiceIntent = {
canHandle(handlerInput) {
return handlerInput.requestEnvelope.request.type === 'IntentRequest'
&& handlerInput.requestEnvelope.request.intent.name === 'CustomServiceIntent';
},
async handle(handlerInput) {
try {
await logic.callDirectiveService(handlerInput,"espera");
} catch (error) {
console.log("Progressive error : " + error);
}
const response = await logic.consultaServicio(1,1,1100);
let speechText="";
if(response) {
const results = response;
results.forEach(function (elemento, indice, array) {
speechText += " El " + " " + " siguiente " +" "+ " niño " + " "+ " en "+" " + " salir es " + " " +" . " + elemento.nombre + " . " ;
});
}
return handlerInput.responseBuilder
.speak(speechText)
.reprompt('tss')
.getResponse();
}
};
答案 0 :(得分:0)
如果您的想法是用户说“停止”,或者您可以使用Dialog Management处理状态来执行此操作,我是否建议您使用Dialog Management解决此问题?给我一个想法,我认为这可能会起作用。在我看来,您想要实现的目标可以使用该对话框管理功能来实现。
我希望它能对您有所帮助。