alexa完成讲话后自动调用方法

时间:2019-07-23 23:29:12

标签: alexa-skills-kit alexa-app

我有一个问题,有可能再次调用在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();
    }
};

1 个答案:

答案 0 :(得分:0)

如果您的想法是用户说“停止”,或者您可以使用Dialog Management处理状态来执行此操作,我是否建议您使用Dialog Management解决此问题?给我一个想法,我认为这可能会起作用。在我看来,您想要实现的目标可以使用该对话框管理功能来实现。

我希望它能对您有所帮助。