DialogContext class
Контекст текущего диалогового окна относится к определенному набору диалоговых окон.
Комментарии
Это включает контекст поворота, сведения о наборе диалогов и состояние стека диалогов.
Из кода за пределами диалогового окна в наборе используйте DialogSet.createContext для создания контекста диалога. Затем используйте методы контекста диалогового окна для управления прогрессированием диалогов в наборе.
При реализации диалогового окна контекст диалога является параметром, доступным для различных методов, которые вы переопределяете или реализуете.
Рассмотрим пример.
const dc = await dialogs.createContext(turnContext);
const result = await dc.continueDialog();
Конструкторы
| Dialog |
Создает новый экземпляр класса DialogContext . |
| Dialog |
Создает новый экземпляр класса DialogContext . |
Свойства
| active |
|
| child | |
| context | Возвращает объект контекста для поворота. |
| dialog |
|
| dialogs | Возвращает диалоговые окна, которые можно вызывать непосредственно из этого контекста. |
| parent | Родительский контекст диалогового окна для этого контекста диалогового окна или |
| services | Возвращает коллекцию служб, которая является контекстной для этого контекста диалога. |
| stack | Возвращает текущий стек диалогов. |
| state | Возвращает DialogStateManager, который управляет представлением всех областей памяти. |
Методы
| begin |
Запускает экземпляр диалогового окна и отправляет его в стек диалогов. Создает новый экземпляр диалогового окна и отправляет его в стек. |
| cancel |
Отменяет все диалоговые окна в стеке диалогов и очищает стек. |
| continue |
Продолжает выполнение активного диалогового окна, если он есть, передав этот контекст диалогового окна в его метод Dialog.continueDialog . |
| emit |
Ищет диалоговое окно с заданным идентификатором. |
| end |
Заканчивает диалоговое окно и выводит его из стека. Возвращает необязательный результат родительскому элементу диалогового окна. |
| find |
Ищет диалоговое окно с заданным идентификатором. |
| get |
Получите CultureInfo в DialogContext. |
| prompt(string, string | Partial<Activity> | Prompt |
Вспомогательные функции для упрощения форматирования параметров вызова диалогового окна запроса. |
| prompt(string, string | Partial<Activity> | Prompt |
Вспомогательные функции для упрощения форматирования параметров вызова диалогового окна запроса. |
| replace |
Заканчивает активное диалоговое окно и запускает новый диалог на его месте. |
| reprompt |
Запрашивает активное диалоговое окно для повторного запроса пользователя на ввод. |
Сведения о конструкторе
DialogContext(DialogSet, DialogContext, DialogState)
Создает новый экземпляр класса DialogContext .
new DialogContext(dialogs: DialogSet, contextOrDC: DialogContext, state: DialogState)
Параметры
- dialogs
- DialogSet
Диалоговое окно, для которого создается контекст диалога.
- contextOrDC
- DialogContext
Объект TurnContext для текущего поворота бота.
- state
- DialogState
Объект состояния, используемый для чтения и записи DialogState в хранилище.
Комментарии
Передача экземпляра DialogContext клонируют контекст диалога.
DialogContext(DialogSet, TurnContext, DialogState)
Создает новый экземпляр класса DialogContext .
new DialogContext(dialogs: DialogSet, contextOrDC: TurnContext, state: DialogState)
Параметры
- dialogs
- DialogSet
Диалоговое окно, для которого создается контекст диалога.
- contextOrDC
-
TurnContext
Объект TurnContext для текущего поворота бота.
- state
- DialogState
Объект состояния, используемый для чтения и записи DialogState в хранилище.
Комментарии
Передача экземпляра DialogContext клонируют контекст диалога.
Сведения о свойстве
activeDialog
DialogInstance | undefined activeDialog
Значение свойства
DialogInstance | undefined
Сведения о состоянии диалогового окна в верхней части стека диалогов или undefined если стек пуст.
child
DialogContext | undefined child
Значение свойства
DialogContext | undefined
Контекст диалогового окна для дочернего элемента, если активное диалоговое окно является контейнером.
context
Возвращает объект контекста для поворота.
context: TurnContext
Значение свойства
TurnContext
dialogManager
Предупреждение
Теперь этот API является нерекомендуемым.
This property serves no function.
DialogManager dialogManager
Значение свойства
Текущий экземпляр диспетчера диалогов. Это свойство является устаревшим.
dialogs
Возвращает диалоговые окна, которые можно вызывать непосредственно из этого контекста.
dialogs: DialogSet
Значение свойства
parent
Родительский контекст диалогового окна для этого контекста диалогового окна или undefined если этот контекст не имеет родительского элемента.
parent: DialogContext | undefined
Значение свойства
DialogContext | undefined
Комментарии
При попытке запустить диалоговое окно контекст диалогового окна ищет Dialog.id в диалоговых окнах. Если диалоговое окно для запуска не найдено в этом контексте диалога, он выполняет поиск в родительском контексте диалогового окна и т. д.
services
Возвращает коллекцию служб, которая является контекстной для этого контекста диалога.
services: TurnContextStateCollection
Значение свойства
TurnContextStateCollection
stack
state
Возвращает DialogStateManager, который управляет представлением всех областей памяти.
state: DialogStateManager
Значение свойства
Сведения о методе
beginDialog(string, object)
Запускает экземпляр диалогового окна и отправляет его в стек диалогов. Создает новый экземпляр диалогового окна и отправляет его в стек.
function beginDialog(dialogId: string, options?: object): Promise<DialogTurnResult>
Параметры
- dialogId
-
string
Идентификатор запускаемого диалогового окна.
- options
-
object
Optional. Аргументы для передачи в диалоговое окно при запуске.
Возвращаемое значение
Promise<DialogTurnResult>
обещание, разрешающее результат поворота диалога.
Комментарии
Если в стеке уже есть активное диалоговое окно, это диалоговое окно будет приостановлено, пока он не будет снова верхним диалогом в стеке.
Состояние возвращаемого объекта описывает состояние стека диалогов после завершения этого метода.
Этот метод создает исключение, если запрошенное диалоговое окно не удается найти в этом контексте диалога или любом из его предков.
Рассмотрим пример.
const result = await dc.beginDialog('greeting', { name: user.name });
См. также
cancelAllDialogs(boolean, string, any)
Отменяет все диалоговые окна в стеке диалогов и очищает стек.
function cancelAllDialogs(cancelParents?: boolean, eventName?: string, eventValue?: any): Promise<DialogTurnResult>
Параметры
- cancelParents
-
boolean
Optional. Если true все родительские диалоги также будут отменены.
- eventName
-
string
Optional. Имя настраиваемого события для вызова в виде диалоговых окон отменено. По умолчанию этот параметр используется для отменыDialog.
- eventValue
-
any
Optional. Значение для передачи вместе с пользовательским событием отмены.
Возвращаемое значение
Promise<DialogTurnResult>
обещание, разрешающее результат поворота диалога.
Комментарии
Это вызывает метод Dialog.endDialog каждого диалогового окна перед удалением диалогового окна из стека.
Если изначально в стеке были какие-либо диалоги, состояние возвращаемого значения отменено; в противном случае это пусто.
В этом примере очищается стек dcдиалогов перед запуском диалогового окна bookFlight.
await dc.cancelAllDialogs();
return await dc.beginDialog('bookFlight');
См. также
continueDialog()
Продолжает выполнение активного диалогового окна, если он есть, передав этот контекст диалогового окна в его метод Dialog.continueDialog .
function continueDialog(): Promise<DialogTurnResult>
Возвращаемое значение
Promise<DialogTurnResult>
обещание, разрешающее результат поворота диалога.
Комментарии
После завершения вызова можно проверить свойство ответа контекста поворота, чтобы определить, отправляет ли диалоговое окно ответ пользователю.
Состояние возвращаемого объекта описывает состояние стека диалогов после завершения этого метода.
Как правило, этот вызов выполняется из обработчика поворота бота.
Рассмотрим пример.
const result = await dc.continueDialog();
if (result.status == DialogTurnStatus.empty && dc.context.activity.type == ActivityTypes.message) {
// Send fallback message
await dc.context.sendActivity(`I'm sorry. I didn't understand.`);
}
emitEvent(string, any, boolean, boolean)
Ищет диалоговое окно с заданным идентификатором.
function emitEvent(name: string, value?: any, bubble?: boolean, fromLeaf?: boolean): Promise<boolean>
Параметры
- name
-
string
Имя создаваемого события.
- value
-
any
Optional. Значение для отправки вместе с событием.
- bubble
-
boolean
Optional. Пометка, чтобы определить, должно ли событие быть пузырьково в родительский, если он не обрабатывается локально. По умолчанию используется значение true.
- fromLeaf
-
boolean
Optional. Указывает, генерируется ли событие конечным узлом.
Возвращаемое значение
Promise<boolean>
true Значение , если событие было обработано.
Комментарии
Выдает именованное событие для текущего диалогового окна или пользователя, который его запустил, для обработки.
endDialog(any)
Заканчивает диалоговое окно и выводит его из стека. Возвращает необязательный результат родительскому элементу диалогового окна.
function endDialog(result?: any): Promise<DialogTurnResult>
Параметры
- result
-
any
Optional. Результат передачи родительской логики. Это может быть следующий диалог в стеке или если это был последний диалог в стеке, родительский контекст диалогового окна или обработчик поворота бота.
Возвращаемое значение
Promise<DialogTurnResult>
обещание, разрешающее результат поворота диалога.
Комментарии
Родительское диалоговое окно — это следующее диалоговое окно в стеке диалогов, если он есть. Этот метод вызывает метод Dialog.resumeDialog родительского объекта, передав результат, возвращаемый конечным диалогом. Если родительское диалоговое окно отсутствует, поворот заканчивается и результат доступен боту через свойство результата возвращаемого объекта.
Состояние возвращаемого объекта описывает состояние стека диалогов после завершения этого метода.
Как правило, этот вызов выполняется из логики для определенного диалогового окна, чтобы сообщить контексту диалога о завершении диалогового окна, диалоговое окно должно быть удалено из стека, а родительский диалог должен возобновиться.
Рассмотрим пример.
return await dc.endDialog(returnValue);
См. также
findDialog(string)
Ищет диалоговое окно с заданным идентификатором.
function findDialog(dialogId: string): Dialog | undefined
Параметры
- dialogId
-
string
Идентификатор диалогового окна для поиска.
Возвращаемое значение
Dialog | undefined
Диалоговое окно для предоставленного идентификатора.
Комментарии
Если диалоговое окно для запуска не найдено в Наборе диалогов , связанном с этим контекстом диалога, он пытается найти диалоговое окно в родительском контексте диалогового окна.
См. также
getLocale()
Получите CultureInfo в DialogContext.
function getLocale(): string
Возвращаемое значение
string
строка языкового стандарта.
prompt(string, string | Partial<Activity> | PromptOptions)
Вспомогательные функции для упрощения форматирования параметров вызова диалогового окна запроса.
function prompt(dialogId: string, promptOrOptions: string | Partial<Activity> | PromptOptions): Promise<DialogTurnResult>
Параметры
- dialogId
-
string
Идентификатор диалогового окна запроса для запуска.
- promptOrOptions
-
string | Partial<Activity> | PromptOptions
Текст начального запроса для отправки пользователю, действие, которое будет отправлено в качестве начального запроса, или объект, с помощью которого будет отформатировать диалоговое окно запроса.
Возвращаемое значение
Promise<DialogTurnResult>
Комментарии
Этот вспомогательный метод форматирует объект, используемый в качестве options параметра, а затем вызывает beginDialog , чтобы запустить указанное диалоговое окно запроса.
return await dc.prompt('confirmPrompt', `Are you sure you'd like to quit?`);
prompt(string, string | Partial<Activity> | PromptOptions, string | Choice[])
Вспомогательные функции для упрощения форматирования параметров вызова диалогового окна запроса.
function prompt(dialogId: string, promptOrOptions: string | Partial<Activity> | PromptOptions, choices: string | Choice[]): Promise<DialogTurnResult>
Параметры
- dialogId
-
string
Идентификатор диалогового окна запроса для запуска.
- promptOrOptions
-
string | Partial<Activity> | PromptOptions
Текст начального запроса для отправки пользователя, действия для отправки в качестве начального запроса или объекта, с помощью которого будет отформатировать диалоговое окно запроса.
- choices
-
string | Choice[]
Optional. Массив вариантов выбора для пользователя для использования с параметром ChoicePrompt.
Возвращаемое значение
Promise<DialogTurnResult>
Комментарии
Этот вспомогательный метод форматирует объект, используемый в качестве options параметра, а затем вызывает beginDialog , чтобы запустить указанное диалоговое окно запроса.
return await dc.prompt('confirmPrompt', `Are you sure you'd like to quit?`);
replaceDialog(string, object)
Заканчивает активное диалоговое окно и запускает новый диалог на его месте.
function replaceDialog(dialogId: string, options?: object): Promise<DialogTurnResult>
Параметры
- dialogId
-
string
Идентификатор запускаемого диалогового окна.
- options
-
object
Optional. Аргументы для передачи в новое диалоговое окно при запуске.
Возвращаемое значение
Promise<DialogTurnResult>
обещание, разрешающее результат поворота диалога.
Комментарии
Это особенно полезно для создания цикла или перенаправления в другое диалоговое окно.
Состояние возвращаемого объекта описывает состояние стека диалогов после завершения этого метода.
Этот метод аналогичен окончанию текущего диалога и немедленному началу нового. Однако родительское диалоговое окно не возобновляется и не уведомляется.
См. также
repromptDialog()
Запрашивает активное диалоговое окно для повторного запроса пользователя на ввод.
function repromptDialog(): Promise<void>
Возвращаемое значение
Promise<void>
Комментарии
При этом вызывается метод repromptDialog активного диалогового окна.
Рассмотрим пример.
await dc.repromptDialog();