DialogContext class
Контекст для текущего поворота диалогового окна относительно определенного DialogSet.
Комментарии
Сюда входит контекст шага, сведения о наборе диалогов и состояние стека диалогов.
В коде за пределами диалогового окна в наборе используйте 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
Объект DialogSet, для которого создается контекст диалога.
- contextOrDC
- DialogContext
Объект TurnContext для текущего поворота бота.
- state
- DialogState
Объект состояния, используемый для чтения и записи DialogState в хранилище.
Комментарии
Передача экземпляра DialogContext приведет к клонировании контекста диалога.
DialogContext(DialogSet, TurnContext, DialogState)
Создает новый экземпляр класса DialogContext .
new DialogContext(dialogs: DialogSet, contextOrDC: TurnContext, state: DialogState)
Параметры
- dialogs
- DialogSet
Объект 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
Необязательный элемент. Аргументы, которые передаются в диалоговое окно при его запуске.
Возвращаемое значение
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
Необязательный элемент. Если true
все родительские диалоги также будут отменены.
- eventName
-
string
Необязательный элемент. Имя настраиваемого события, которое будет вызываться при отмене диалоговых окон. По умолчанию используется значение cancelDialog.
- eventValue
-
any
Необязательный элемент. Значение, передаваемое вместе с пользовательским событием отмены.
Возвращаемое значение
Promise<DialogTurnResult>
обещание, разрешающееся в результате поворота диалога.
Комментарии
Это вызывает метод Dialog.endDialog каждого диалога перед удалением диалога из стека.
Если изначально в стеке были диалоги, состояние возвращаемого значения отменяется; в противном случае он пуст.
В этом примере перед запуском диалогового окна bookFlight очищается стек dc
диалогов.
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
Необязательный элемент. Значение, отправляемое вместе с событием.
- bubble
-
boolean
Необязательный элемент. Флаг, определяющий, следует ли передать событие в родительский объект, если оно не обрабатывается локально. По умолчанию имеет значение true
.
- fromLeaf
-
boolean
Необязательный элемент. Указывает, создается ли событие из конечного узла.
Возвращаемое значение
Promise<boolean>
true
Значение , если событие было обработано.
Комментарии
Выдает именованное событие для обработки текущего диалога или для пользователя, который его начал.
endDialog(any)
Завершает диалоговое окно и выводит его из стека. Возвращает необязательный результат родительскому диалогу.
function endDialog(result?: any): Promise<DialogTurnResult>
Параметры
- result
-
any
Необязательный элемент. Результат для передачи в родительскую логику. Это может быть следующий диалог в стеке или последний диалог в стеке, контекст родительского диалога или обработчик шагов бота.
Возвращаемое значение
Promise<DialogTurnResult>
обещание, разрешающееся в результате поворота диалога.
Комментарии
Родительский диалог — это следующий диалог в стеке диалогов, если он есть. Этот метод вызывает родительский метод Dialog.resumeDialog , передав результат, возвращаемый конечным диалогом. Если родительского диалогового окна нет, то очередь заканчивается, и результат будет доступен боту через свойство result возвращаемого объекта.
Состояние возвращаемого объекта описывает состояние стека диалогов после завершения этого метода.
Как правило, вы вызываете его из логики для конкретного диалога, чтобы сообщить контексту диалога о завершении диалога, диалог должен быть удален из стека, а родительский диалог должен возобновиться.
Например:
return await dc.endDialog(returnValue);
См. также:
findDialog(string)
Выполняет поиск диалогового окна с заданным идентификатором.
function findDialog(dialogId: string): Dialog | undefined
Параметры
- dialogId
-
string
Идентификатор искомого диалогового окна.
Возвращаемое значение
Dialog | undefined
Диалоговое окно для предоставленного идентификатора.
Комментарии
Если диалог для запуска не найден в наборе DialogSet , связанном с этим контекстом диалога, он пытается найти диалог в родительском контексте диалога.
См. также:
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[]
Необязательный элемент. Массив вариантов выбора для пользователя для использования с 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
Необязательный элемент. Аргументы для передачи в новое диалоговое окно при его запуске.
Возвращаемое значение
Promise<DialogTurnResult>
обещание, разрешающееся в результате поворота диалога.
Комментарии
Это особенно полезно для создания цикла или перенаправления в другой диалог.
Состояние возвращаемого объекта описывает состояние стека диалогов после завершения этого метода.
Этот метод аналогичен завершению текущего диалога и немедленному началу нового. Однако родительский диалог не возобновляется и не уведомляется иным образом.
См. также:
repromptDialog()
Запрашивает активное диалоговое окно для повторного запроса ввода данных у пользователя.
function repromptDialog(): Promise<void>
Возвращаемое значение
Promise<void>
Комментарии
При этом вызывается метод repromptDialog активного диалога.
Например:
await dc.repromptDialog();