ActionContext class

使用用于操作 AdaptiveDialog 操作执行序列的其他方法扩展 DialogContext

Extends

DialogContext

构造函数

ActionContext(DialogSet, DialogContext, DialogState, ActionState[], symbol)

初始化 ActionContext 类的新实例

属性

actions

正在执行的操作列表。

changes

获取排队等待应用的更改的列表。

继承属性

activeDialog
child
context

获取轮次的上下文对象。

dialogManager
dialogs

获取可直接从此上下文调用的对话。

parent

此对话上下文的父对话上下文; undefined 如果此上下文没有父级,则为 。

services

获取与此对话上下文相关的服务集合。

stack

获取当前对话框堆栈。

state

获取管理所有内存范围的视图的 DialogStateManager。

方法

applyChanges()

应用任何排队的更改。

queueChanges(ActionChangeList)

将一组将在调用 applyChanges () 时应用的更改排队。

继承的方法

beginDialog(string, object)

启动对话实例并将其推送到对话堆栈上。 创建对话框的新实例并将其推送到堆栈上。

cancelAllDialogs(boolean, string, any)

取消对话堆栈上的所有对话,并清除堆栈。

continueDialog()

通过将此对话上下文传递给其 Dialog.continueDialog 方法,继续执行活动对话(如果有)。

emitEvent(string, any, boolean, boolean)

搜索具有给定 ID 的对话框。

endDialog(any)

结束对话框并将其从堆栈中弹出。 将可选结果返回给对话框的父级。

findDialog(string)

搜索具有给定 ID 的对话框。

getLocale()

在 DialogContext 中获取 CultureInfo。

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

帮助程序函数,用于简化用于调用提示对话框的选项的格式设置。

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

帮助程序函数,用于简化用于调用提示对话框的选项的格式设置。

replaceDialog(string, object)

结束活动对话,并在其位置启动一个新对话。

repromptDialog()

请求活动对话框以重新提示用户输入。

构造函数详细信息

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

ActionState[]

要执行的剩余操作的当前列表。

changeKey

symbol

用于保留任何更改的位置的 TurnState 键。

属性详细信息

actions

正在执行的操作列表。

actions: ActionState[]

属性值

changes

获取排队等待应用的更改的列表。

ActionChangeList[] 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 中找不到要启动的对话,它将尝试在其父对话上下文中查找该对话框。

另请参阅

继承自 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