У меня есть навык, когда намерению нужно три слота.Все три слота являются обязательными, и последний слот также требует подтверждения.Я получаю значения слотов, используя request.dialogState
Слоты:
- item1: требуется
- item2: требуется
- item3: требуетсяи требуется подтверждение
Когда я пытаюсь вернуть директиву Dialog.Delegate в случае 'IN_PROGRESS', если блок, он ничего не делает.
switch (request.dialogState) {
case 'STARTED':
if (slots.item1.value && slots.item1.value && slots.item3.value) {
await super.checkItem(input);
return input.responseBuilder.addDelegateDirective(request.intent).getResponse();
} else {
return input.responseBuilder.addDelegateDirective(request.intent).getResponse();
}
case 'IN_PROGRESS':
if (
slots.item1.value &&
slots.item2.value &&
slots.item3.value &&
slots.item3.confirmationStatus === 'NONE'
) {
await super.checkItem(input);
return input.responseBuilder.addDelegateDirective(request.intent).getResponse();
} else if (
slots.item1.value &&
slots.item2.value &&
slots.item3.value &&
slots.item3.confirmationStatus !== 'NONE'
) {
await this.checkConfirmation(input);
return input.responseBuilder.addDelegateDirective(request.intent).getResponse();
} else {
return input.responseBuilder.addDelegateDirective(request.intent).getResponse()
}
case 'COMPLETED':
return this.finalCreate(input);
default:
return null;
}