ActionContext class
使用用于操作 AdaptiveDialog 操作执行序列的其他方法扩展 DialogContext。
- Extends
-
DialogContext
构造函数
Action |
初始化 ActionContext 类的新实例 |
属性
actions | 正在执行的操作列表。 |
changes | 获取排队等待应用的更改的列表。 |
继承属性
active |
|
child | |
context | 获取轮次的上下文对象。 |
dialog |
|
dialogs | 获取可直接从此上下文调用的对话。 |
parent | 此对话上下文的父对话上下文; |
services | 获取与此对话上下文相关的服务集合。 |
stack | 获取当前对话框堆栈。 |
state | 获取管理所有内存范围的视图的 DialogStateManager。 |
方法
apply |
应用任何排队的更改。 |
queue |
将一组将在调用 applyChanges () 时应用的更改排队。 |
继承的方法
begin |
启动对话实例并将其推送到对话堆栈上。 创建对话框的新实例并将其推送到堆栈上。 |
cancel |
取消对话堆栈上的所有对话,并清除堆栈。 |
continue |
通过将此对话上下文传递给其 Dialog.continueDialog 方法,继续执行活动对话(如果有)。 |
emit |
搜索具有给定 ID 的对话框。 |
end |
结束对话框并将其从堆栈中弹出。 将可选结果返回给对话框的父级。 |
find |
搜索具有给定 ID 的对话框。 |
get |
在 DialogContext 中获取 CultureInfo。 |
prompt(string, string | Partial<Activity> | Prompt |
帮助程序函数,用于简化用于调用提示对话框的选项的格式设置。 |
prompt(string, string | Partial<Activity> | Prompt |
帮助程序函数,用于简化用于调用提示对话框的选项的格式设置。 |
replace |
结束活动对话,并在其位置启动一个新对话。 |
reprompt |
请求活动对话框以重新提示用户输入。 |
构造函数详细信息
ActionContext(DialogSet, DialogContext, DialogState, ActionState[], symbol)
初始化 ActionContext 类的新实例
new ActionContext(dialogs: DialogSet, parentDialogContext: DialogContext, state: DialogState, actions: ActionState[], changeKey: symbol)
参数
- dialogs
-
DialogSet
要为其创建操作上下文的对话框集。
- parentDialogContext
-
DialogContext
父对话上下文。
- state
-
DialogState
当前对话框状态。
- actions
要执行的剩余操作的当前列表。
- changeKey
-
symbol
用于保留任何更改的位置的 TurnState 键。
属性详细信息
actions
changes
继承属性详细信息
activeDialog
activeDialog: DialogInstance | undefined
属性值
DialogInstance | undefined
继承自 DialogContext.activeDialog
child
child: DialogContext | undefined
属性值
DialogContext | undefined
继承自 DialogContext.child
context
获取轮次的上下文对象。
context: TurnContext
属性值
TurnContext
继承自 DialogContext.context
dialogManager
dialogManager: DialogManager
属性值
DialogManager
继承自 DialogContext.dialogManager
dialogs
获取可直接从此上下文调用的对话。
dialogs: DialogSet
属性值
DialogSet
继承自 DialogContext.dialogs
parent
此对话上下文的父对话上下文; undefined
如果此上下文没有父级,则为 。
parent: DialogContext | undefined
属性值
DialogContext | undefined
注解
尝试启动对话时,对话上下文会在其对话中搜索 Dialog.id。 如果在此对话上下文中找不到要启动的对话,则它会在其父对话上下文中搜索,依此类说。
继承自 DialogContext.parent
services
获取与此对话上下文相关的服务集合。
services: TurnContextStateCollection
属性值
TurnContextStateCollection
继承自 DialogContext.services
stack
获取当前对话框堆栈。
stack: DialogInstance[]
属性值
DialogInstance[]
继承自 DialogContext.stack
state
获取管理所有内存范围的视图的 DialogStateManager。
state: DialogStateManager
属性值
DialogStateManager
继承自 DialogContext.state
方法详细信息
applyChanges()
应用任何排队的更改。
function applyChanges(): Promise<boolean>
返回
Promise<boolean>
如果有任何要应用的更改,则为 True。
queueChanges(ActionChangeList)
将一组将在调用 applyChanges () 时应用的更改排队。
function queueChanges(changes: ActionChangeList)
参数
- changes
- ActionChangeList
计划更改以排队。
继承的方法详细信息
beginDialog(string, object)
启动对话实例并将其推送到对话堆栈上。 创建对话框的新实例并将其推送到堆栈上。
function beginDialog(dialogId: string, options?: object): Promise<DialogTurnResult>
参数
- dialogId
-
string
要启动的对话框的 ID。
- options
-
object
可选。 启动时要传入对话的参数。
返回
Promise<DialogTurnResult>
解析为对话轮次结果的承诺。
注解
如果堆栈上已有活动对话,该对话将暂停,直到它再次成为堆栈上的顶部对话。
返回对象的 状态 描述此方法完成后对话框堆栈的状态。
如果在此对话上下文或其任何上级中找不到请求的对话,此方法将引发异常。
例如:
const result = await dc.beginDialog('greeting', { name: user.name });
另请参阅
继承自 DialogContext.beginDialog
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');
另请参阅
继承自 DialogContext.cancelAllDialogs
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.`);
}
继承自 DialogContext.continueDialog
emitEvent(string, any, boolean, boolean)
搜索具有给定 ID 的对话框。
function emitEvent(name: string, value?: any, bubble?: boolean, fromLeaf?: boolean): Promise<boolean>
参数
- name
-
string
要引发的事件的名称。
- value
-
any
可选。 要随事件一起发送的值。
- bubble
-
boolean
可选。 用于控制是否应将事件浮升到其父级(如果未在本地处理)的标志。 默认为 值 true
。
- fromLeaf
-
boolean
可选。 事件是否从叶节点发出。
返回
Promise<boolean>
true
如果已处理事件,则为 。
注解
为当前对话框或启动该对话框的人员发出一个命名事件,以便处理该事件。
继承自 DialogContext.emitEvent
endDialog(any)
结束对话框并将其从堆栈中弹出。 将可选结果返回给对话框的父级。
function endDialog(result?: any): Promise<DialogTurnResult>
参数
- result
-
any
可选。 要传递给父逻辑的结果。 这可能是堆栈上的下一个对话,或者,如果这是堆栈上的最后一个对话、父对话上下文或机器人的轮次处理程序。
返回
Promise<DialogTurnResult>
解析为对话轮次结果的承诺。
注解
父对话是对话堆栈上的下一个对话(如果有)。 此方法调用父级的 Dialog.resumeDialog 方法,传递结束对话返回的结果。 如果没有父对话,则轮次结束,并且机器人可通过返回对象的 result 属性获取 结果 。
返回对象的 状态 描述此方法完成后对话框堆栈的状态。
通常,你会从特定对话的逻辑中调用它,以向对话上下文发出信号,指示对话已完成,对话应从堆栈中删除,并且父对话应恢复。
例如:
return await dc.endDialog(returnValue);
另请参阅
继承自 DialogContext.endDialog
findDialog(string)
搜索具有给定 ID 的对话框。
function findDialog(dialogId: string): Dialog | undefined
参数
- dialogId
-
string
要搜索的对话框的 ID。
返回
Dialog | undefined
提供的 ID 的对话框。
注解
如果在与此对话上下文关联的 DialogSet 中找不到要启动的对话,它将尝试在其父对话上下文中查找该对话框。
另请参阅
- 对话 框
- parent
继承自 DialogContext.findDialog
getLocale()
在 DialogContext 中获取 CultureInfo。
function getLocale(): string
返回
string
区域设置字符串。
继承自 DialogContext.getLocale
prompt(string, string | Partial<Activity> | PromptOptions)
帮助程序函数,用于简化用于调用提示对话框的选项的格式设置。
function prompt(dialogId: string, promptOrOptions: string | Partial<Activity> | PromptOptions): Promise<DialogTurnResult>
参数
- dialogId
-
string
要启动的提示对话框的 ID。
- promptOrOptions
-
string | Partial<Activity> | PromptOptions
要发送用户的初始提示的文本、要作为初始提示发送的活动,或用于设置提示对话框格式的对象。
返回
Promise<DialogTurnResult>
注解
此帮助程序方法格式化要用作 options
参数的对象,然后调用 beginDialog 以启动指定的提示对话框。
return await dc.prompt('confirmPrompt', `Are you sure you'd like to quit?`);
继承自 DialogContext.prompt
prompt(string, string | Partial<Activity> | PromptOptions, string | Choice[])
帮助程序函数,用于简化用于调用提示对话框的选项的格式设置。
function prompt(dialogId: string, promptOrOptions: string | Partial<Activity> | PromptOptions, choices: string | Choice[]): Promise<DialogTurnResult>
参数
- dialogId
-
string
要启动的提示对话框的 ID。
- 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?`);
继承自 DialogContext.prompt
replaceDialog(string, object)
结束活动对话,并在其位置启动一个新对话。
function replaceDialog(dialogId: string, options?: object): Promise<DialogTurnResult>
参数
- dialogId
-
string
要启动的对话框的 ID。
- options
-
object
可选。 启动时要传递到新对话的参数。
返回
Promise<DialogTurnResult>
解析为对话轮次结果的承诺。
注解
这对于创建循环或重定向到另一个对话特别有用。
返回对象的 状态 描述此方法完成后对话框堆栈的状态。
此方法类似于结束当前对话并立即启动新对话。 但是,父对话既不会恢复,也不会以其他方式通知。
另请参阅
继承自 DialogContext.replaceDialog
repromptDialog()
请求活动对话框以重新提示用户输入。
function repromptDialog(): Promise<void>
返回
Promise<void>
注解
这会调用活动对话的 repromptDialog 方法。
例如:
await dc.repromptDialog();
继承自 DialogContext.repromptDialog