Когда я устанавливаю задержку между двумя сообщениями в диалоговом окне с водопадом, и пользователь что-то вводит до ее завершения, шаг диалога, включая задержку, запускается снова, и задержка повторяется.
class Delay extends ComponentDialog {
constructor(id) {
super(id);
this.addDialog(new WaterfallDialog(WATER_FALL_DIALOG_ID, [
this.startStep.bind(this),
this.delay.bind(this),
this.endStep.bind(this)
]));
}
async startStep(stepContext) {
await stepContext.context.sendActivity('Start Delay dialog');
return await stepContext.next();
}
async delay(stepContext) {
await stepContext.context.sendActivities([
{ type: ActivityTypes.Message, text: 'message 1' },
{ type: 'delay', value: 5000 },
{ type: ActivityTypes.Message, text: 'message 2' }
]);
return stepContext.next();
}
async endStep(stepContext) {
await stepContext.context.sendActivity('End Delay dialog');
return await stepContext.endDialog();
}
}
Я хочу знать, как можно заставить бота игнорировать любые входные данные во время шага задержки или, по крайней мере, не повторять шаг задержки и сообщения.
Мне нравится, что бот игнорирует сообщения, отправленные пользователем во время задержки, и не предпринимает никаких других действий, я просто не хочу, чтобы он повторял шаг задержки.