Диалог запускается снова, если пользователь что-то набирает во время задержки - PullRequest
1 голос
/ 25 апреля 2020

Когда я устанавливаю задержку между двумя сообщениями в диалоговом окне с водопадом, и пользователь что-то вводит до ее завершения, шаг диалога, включая задержку, запускается снова, и задержка повторяется.

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();
  }
}

enter image description here

Я хочу знать, как можно заставить бота игнорировать любые входные данные во время шага задержки или, по крайней мере, не повторять шаг задержки и сообщения.

Мне нравится, что бот игнорирует сообщения, отправленные пользователем во время задержки, и не предпринимает никаких других действий, я просто не хочу, чтобы он повторял шаг задержки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...