DialogContext class

Контекст текущего диалогового окна относится к определенному набору диалоговых окон.

Комментарии

Это включает контекст поворота, сведения о наборе диалогов и состояние стека диалогов.

Из кода за пределами диалогового окна в наборе используйте DialogSet.createContext для создания контекста диалога. Затем используйте методы контекста диалогового окна для управления прогрессированием диалогов в наборе.

При реализации диалогового окна контекст диалога является параметром, доступным для различных методов, которые вы переопределяете или реализуете.

Рассмотрим пример.

const dc = await dialogs.createContext(turnContext);
const result = await dc.continueDialog();

Конструкторы

DialogContext(DialogSet, DialogContext, DialogState)

Создает новый экземпляр класса DialogContext .

DialogContext(DialogSet, TurnContext, DialogState)

Создает новый экземпляр класса DialogContext .

Свойства

activeDialog
child
context

Возвращает объект контекста для поворота.

dialogManager
dialogs

Возвращает диалоговые окна, которые можно вызывать непосредственно из этого контекста.

parent

Родительский контекст диалогового окна для этого контекста диалогового окна или undefined если этот контекст не имеет родительского элемента.

services

Возвращает коллекцию служб, которая является контекстной для этого контекста диалога.

stack

Возвращает текущий стек диалогов.

state

Возвращает DialogStateManager, который управляет представлением всех областей памяти.

Методы

beginDialog(string, object)

Запускает экземпляр диалогового окна и отправляет его в стек диалогов. Создает новый экземпляр диалогового окна и отправляет его в стек.

cancelAllDialogs(boolean, string, any)

Отменяет все диалоговые окна в стеке диалогов и очищает стек.

continueDialog()

Продолжает выполнение активного диалогового окна, если он есть, передав этот контекст диалогового окна в его метод Dialog.continueDialog .

emitEvent(string, any, boolean, boolean)

Ищет диалоговое окно с заданным идентификатором.

endDialog(any)

Заканчивает диалоговое окно и выводит его из стека. Возвращает необязательный результат родительскому элементу диалогового окна.

findDialog(string)

Ищет диалоговое окно с заданным идентификатором.

getLocale()

Получите CultureInfo в DialogContext.

prompt(string, string | Partial<Activity> | PromptOptions)

Вспомогательные функции для упрощения форматирования параметров вызова диалогового окна запроса.

prompt(string, string | Partial<Activity> | PromptOptions, string | Choice[])

Вспомогательные функции для упрощения форматирования параметров вызова диалогового окна запроса.

replaceDialog(string, object)

Заканчивает активное диалоговое окно и запускает новый диалог на его месте.

repromptDialog()

Запрашивает активное диалоговое окно для повторного запроса пользователя на ввод.

Сведения о конструкторе

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

Возвращает текущий стек диалогов.

stack: DialogInstance[]

Значение свойства

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