Я разработал веб-страницу через React, в которой взаимодействуют Webchat-Bot и React App.Приложение React содержит таймер, который должен остановить любой диалог, запущенный в данный момент.Это происходит при отправке события через Direct-Line.В любом случае, я получаю нежелательное поведение, что, если логика бота находится в Водопаде, где шаг - это (Выбор-) Подсказка, Вопрос повторяется.(Потому что он не получил требуемый ответ от пользователя).У меня вопрос:
Как мне остановить ChoicePrompt от Reprompting?
Когда бот получает событие 'timeout', он останавливает текущий диалог с помощью await endDialog()
и начинает новый диалогкоторый отправляет новые сообщения.После следующего пользовательского ввода появится запрос «До».Таким образом, я предполагаю, что Подсказка в фоновом режиме все еще ждет одного из ответов, и, поскольку он не получил его, он запускается снова или повторяется.
Я попытался установить maxRetries в 0:
var options = {maxRetries: '0'};
await step.prompt(CONFIRM_PROMPT, `text abc..`, ['sure', 'not sure'], options);
фрагмент кода для всплывающего события ..
async onTurn(turnContext) {
const dc = await this.dialogs.createContext(turnContext);
..
if (turnContext.activity.name === 'time-feedback') {
..
await dc.endDialog(); // when a choice-prompt is active, it keeps reprompting, before the next line gets activated. I wish to end the reprompt and current (waterfall dialog) immediately
await dc.beginDialog(PromptForStartingNew); // start a new waterfall dialog
}