Dialog.ElicitSlot正在循环运行如何在alexa中再次结束并开始对话?

时间:2018-05-16 10:07:22

标签: node.js aws-lambda alexa alexa-skills-kit alexa-slot

function delegateSlotCollection(){
 console.log("current dialogState: "+this.event.request.dialogState);
   if (this.event.request.dialogState === "STARTED") {
     var updatedIntent=this.event.request.intent;
     this.emit(":delegate", updatedIntent);
   } else if (this.event.request.dialogState !== "COMPLETED") {
     console.log("in not completed");
      if(this.event.request.intent.slots.customername.value) {
            let prompt = "Please Tell Me your Item name  ";
            let reprompt = "";
            console.log("Printed");
            this.emit(':elicitSlot', 'item', prompt, reprompt); 
      }

   } else {

     return this.event.request.intent;
   }
}

运行此代码之后,它会询问客户名称,然后它会引出项目值,之后当我输入项目值时,它会循环并一次又一次地询问项目值如何打破这个?

输出json: -

  

"指令":[                 {                     "输入":" Dialog.ElicitSlot",                     " slotToElicit":" item"                 }],

1 个答案:

答案 0 :(得分:0)

function delegateSlotCollection(){
 console.log("current dialogState: "+this.event.request.dialogState);
   if (this.event.request.dialogState === "STARTED") {
     var updatedIntent=this.event.request.intent;
     this.emit(":delegate", updatedIntent);
   } else if (this.event.request.dialogState !== "COMPLETED") {
     console.log("in not completed");
     if (this.event.request.intent.slots.item.value) {
         this.emit(":delegate");
     }
      else if(this.event.request.intent.slots.customername.value) {
            let prompt = "Please Tell Me your Item name HELLO  ";
            let reprompt = "";
            console.log("Printed");
            this.emit(':elicitSlot', 'item', prompt, reprompt); 
      }

   } else {

     return this.event.request.intent;
   }
}

好的找到了这个解决方案