WaterfallDialog class
Каскад — это диалоговое окно, оптимизированное для запроса пользователя с рядом вопросов.
- Extends
-
Dialog<O>
Комментарии
Каскады принимают стек функций, которые будут выполняться в последовательности. Каждый каскадный шаг может задать вопрос пользователя, и ответ пользователя будет передан на следующий шаг в каскаде через step.result
. Специальный объект step.value
можно использовать для сохранения значений между шагами:
const { ComponentDialog, WaterfallDialog, TextPrompt, NumberPrompt } = require('botbuilder-dialogs);
class FillProfileDialog extends ComponentDialog {
constructor(dialogId) {
super(dialogId);
// Add control flow dialogs
this.addDialog(new WaterfallDialog('start', [
async (step) => {
// Ask user their name
return await step.prompt('namePrompt', `What's your name?`);
},
async (step) => {
// Remember the users answer
step.values['name'] = step.result;
// Ask user their age.
return await step.prompt('agePrompt', `Hi ${step.values['name']}. How old are you?`);
},
async (step) => {
// Remember the users answer
step.values['age'] = step.result;
// End the component and return the completed profile.
return await step.endDialog(step.values);
}
]));
// Add prompts
this.addDialog(new TextPrompt('namePrompt'));
this.addDialog(new NumberPrompt('agePrompt'))
}
}
module.exports.FillProfileDialog = FillProfileDialog;
Конструкторы
Waterfall |
Создает новый каскадный диалог, содержащий заданный массив шагов. |
Свойства
id | Уникальный идентификатор диалогового окна. Задает уникальный идентификатор диалогового окна. |
telemetry |
Возвращает клиент телеметрии для этого диалогового окна. Задает клиент телеметрии для этого диалогового окна. |
Унаследованные свойства
End |
Возвращает результат конца по умолчанию. |
Методы
add |
Добавляет новый шаг в каскад. |
begin |
Вызывается при запуске каскадного журнала |
continue |
Вызывается, когда |
end |
Вызывается, когда диалоговое окно заканчивается. |
get |
Возвращает версию диалогового окна, состоящую из идентификатора и количества шагов. |
resume |
Вызывается, когда дочерний Каскадныйdialog завершил свою очередь, возвращая элемент управления в этом диалоговом окне. |
Наследуемые методы
configure(Record<string, unknown>) | Метод Fluent для настройки объекта. |
get |
|
on |
Вызывается при возникновении события, используя |
reprompt |
При переопределении в производном классе переиздает пользователя для ввода. |
Сведения о конструкторе
WaterfallDialog(string, WaterfallStep<O>[])
Создает новый каскадный диалог, содержащий заданный массив шагов.
new WaterfallDialog(dialogId: string, steps?: WaterfallStep<O>[])
Параметры
- dialogId
-
string
Уникальный идентификатор диалогового окна в компоненте или его добавление.
- steps
-
WaterfallStep<O>[]
(Необязательно) массив асинхронных каскадных функций шага.
Комментарии
Дополнительные сведения о создании допустимой функции шага см. в функции addStep().
Сведения о свойстве
id
Уникальный идентификатор диалогового окна. Задает уникальный идентификатор диалогового окна.
string id
Значение свойства
string
Идентификатор диалогового окна.
Комментарии
Это будет автоматически создано, если не указано.
telemetryClient
Возвращает клиент телеметрии для этого диалогового окна. Задает клиент телеметрии для этого диалогового окна.
BotTelemetryClient telemetryClient
Значение свойства
BotTelemetryClient
BotTelemetryClient для ведения журнала.
Сведения об унаследованном свойстве
EndOfTurn
Возвращает результат конца по умолчанию.
static EndOfTurn: DialogTurnResult
Значение свойства
Комментарии
Этот результат указывает, что диалоговое окно (или логический шаг в диалоговом окне) завершило обработку текущего шага, по-прежнему активно и ожидает дополнительных входных данных.
унаследован от диалогового окна.EndOfTurn
Сведения о методе
addStep(WaterfallStep<O>)
Добавляет новый шаг в каскад.
function addStep(step: WaterfallStep<O>): this
Параметры
- step
Асинхронная функция шага для вызова.
Возвращаемое значение
this
Каскадное диалоговое окно для беглого вызова addStep()
.
Комментарии
Все функции шага должны быть асинхронными и возвращать DialogTurnResult
.
WaterfallStepContext
, передаваемый в функцию, наследуется от DialogContext
и содержит множество методов обработки стека, которые возвращают DialogTurnResult
, поэтому обычно можно просто вернуть результат из вызываемого метода DialogContext.
Сама функция шага может быть асинхронным закрытием:
const helloDialog = new WaterfallDialog('hello');
helloDialog.addStep(async (step) => {
await step.context.sendActivity(`Hello World!`);
return await step.endDialog();
});
Именованной асинхронной функции:
async function helloWorldStep(step) {
await step.context.sendActivity(`Hello World!`);
return await step.endDialog();
}
helloDialog.addStep(helloWorldStep);
Или метод класса, привязанный к его this
указателю:
helloDialog.addStep(this.helloWorldStep.bind(this));
beginDialog(DialogContext, O)
Вызывается при запуске каскадного журнала
function beginDialog(dc: DialogContext, options?: O): Promise<DialogTurnResult>
Параметры
DialogContext для текущей очереди беседы.
Возвращаемое значение
Promise<DialogTurnResult>
Обещание, представляющее асинхронную операцию.
Комментарии
Если задача выполнена успешно, результат указывает, активен ли диалогового окна
continueDialog(DialogContext)
Вызывается, когда
function continueDialog(dc: DialogContext): Promise<DialogTurnResult>
Параметры
DialogContext для текущей очереди беседы.
Возвращаемое значение
Promise<DialogTurnResult>
Обещание, представляющее асинхронную операцию.
Комментарии
Если задача выполнена успешно, результат указывает, активен ли диалог после обработки в диалоговом окне. Результат также может содержать возвращаемое значение.
endDialog(TurnContext, DialogInstance, DialogReason)
Вызывается, когда диалоговое окно заканчивается.
function endDialog(context: TurnContext, instance: DialogInstance, reason: DialogReason): Promise<void>
Параметры
- context
-
TurnContext
Контекст для текущей очереди беседы.
- instance
- DialogInstance
Экземпляр текущего диалогового окна.
- reason
- DialogReason
Причина окончания диалогового окна.
Возвращаемое значение
Promise<void>
getVersion()
Возвращает версию диалогового окна, состоящую из идентификатора и количества шагов.
function getVersion(): string
Возвращаемое значение
string
Версия диалогового окна, состоящая из идентификатора и количества шагов.
resumeDialog(DialogContext, DialogReason, any)
Вызывается, когда дочерний Каскадныйdialog завершил свою очередь, возвращая элемент управления в этом диалоговом окне.
function resumeDialog(dc: DialogContext, reason: DialogReason, result?: any): Promise<DialogTurnResult>
Параметры
DialogContext для текущей очереди беседы.
- reason
- DialogReason
(xref:botbuilder-dialogs. DialogReason) почему диалоговое окно возобновляется.
- result
-
any
Необязательное значение, возвращаемое из вызываемого диалогового окна. Тип возвращаемого значения зависит от дочернего диалогового окна.
Возвращаемое значение
Promise<DialogTurnResult>
Обещание, представляющее асинхронную операцию.
Сведения о наследуемом методе
configure(Record<string, unknown>)
Метод Fluent для настройки объекта.
function configure(config: Record<string, unknown>): this
Параметры
- config
-
Record<string, unknown>
Параметры конфигурации для применения.
Возвращаемое значение
this
После завершения операции настраиваемый.
наследуется отConfigurable.configure
getConverter(string)
function getConverter(_property: string): Converter | ConverterFactory
Параметры
- _property
-
string
Ключ конфигурации условного селектора.
Возвращаемое значение
Преобразователь конфигурации селектора.
унаследован отConfigurable.getConverter
onDialogEvent(DialogContext, DialogEvent)
Вызывается при возникновении события, используя DialogContext.emitEvent()
, текущим диалогом или диалогом, запущенным текущим диалогом.
function onDialogEvent(dc: DialogContext, e: DialogEvent): Promise<boolean>
Параметры
Контекст диалогового окна для текущей очереди беседы.
Возникает событие.
Возвращаемое значение
Promise<boolean>
Значение True, если событие обрабатывается текущим диалогом, а пузырьк должен остановиться.
наследуется от диалогового окна.onDialogEvent
repromptDialog(TurnContext, DialogInstance)
При переопределении в производном классе переиздает пользователя для ввода.
function repromptDialog(_context: TurnContext, _instance: DialogInstance): Promise<void>
Параметры
- _context
-
TurnContext
Объект контекста для поворота.
- _instance
- DialogInstance
Текущие сведения о состоянии для этого диалогового окна.
Возвращаемое значение
Promise<void>
Комментарии
Производные диалоги, поддерживающие проверку и логику повторного запроса, должны переопределить этот метод. По умолчанию этот метод не действует.
DialogContext вызывает этот метод, когда текущее диалоговое окно должно повторно запрашивать входные данные от пользователя. Этот метод реализуется для диалоговых окон запроса.
См. также
унаследован отDialog.repromptDialog