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 |
搜尋具有指定標識碼的對話框。 |
| end |
結束對話框,並將它從堆疊中快顯出來。 傳回對話框父系的選擇性結果。 |
| find |
搜尋具有指定標識碼的對話框。 |
| 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
要啟動之對話框的識別碼。
- 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 方法,再從堆棧中移除對話方塊。
如果一開始堆疊上有任何對話框,則傳回值的 狀態取消;否則,它會 空。
此範例會先清除對話框堆疊,dc,再啟動 『bookFlight』 對話方塊。
await dc.cancelAllDialogs();
return await dc.beginDialog('bookFlight');
另請參閱
繼承自 DialogContext.cancelAllDialogs
continueDialog()
如果有的話,繼續執行使用中的對話框,方法是將此對話內容傳遞至其 Dialog.continueDialog 方法。
function continueDialog(): Promise<DialogTurnResult>
傳回
Promise<DialogTurnResult>
解決對話框回合結果的承諾。
備註
呼叫完成之後,您可以檢查回合內容的 回應 屬性,以判斷對話框是否傳送回復給使用者。
傳回物件的 狀態 描述此方法完成之後對話框堆疊的狀態。
一般而言,您會從 Bot 的回合處理程式內呼叫這個 。
例如:
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)
搜尋具有指定標識碼的對話框。
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
自選。 要傳遞至父邏輯的結果。 這可能是堆疊上的下一個對話框,如果這是堆疊上的最後一個對話框、父對話內容或 Bot 的回合處理程式。
傳回
Promise<DialogTurnResult>
解決對話框回合結果的承諾。
備註
父 對話框是對話堆疊上的下一個對話方塊,如果有的話。 這個方法會呼叫父系的 Dialog.resumeDialog 方法,並傳遞結束對話傳回的結果。 如果沒有父對話框,回合就會結束,而結果會透過傳回物件的 結果 屬性提供給 Bot 使用。
傳回物件的 狀態 描述此方法完成之後對話框堆疊的狀態。
一般而言,您會從特定對話的邏輯中呼叫此專案,以向對話內容發出訊號,指出對話已完成、對話應該從堆棧中移除,而且父對話應該繼續。
例如:
return await dc.endDialog(returnValue);
另請參閱
繼承自 DialogContext.endDialog
findDialog(string)
搜尋具有指定標識碼的對話框。
function findDialog(dialogId: string): Dialog | undefined
參數
- dialogId
-
string
要搜尋之對話框的標識碼。
傳回
Dialog | undefined
所提供標識碼的對話框。
備註
如果在與這個對話內容相關聯的 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
要啟動之提示對話框的識別碼。
- 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
要啟動之提示對話框的識別碼。
- 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
要啟動之對話框的識別碼。
- options
-
object
自選。 啟動時要傳入新對話的自變數。
傳回
Promise<DialogTurnResult>
解決對話框回合結果的承諾。
備註
這對於建立迴圈或重新導向至另一個對話框特別有用。
傳回物件的 狀態 描述此方法完成之後對話框堆疊的狀態。
這個方法類似於結束目前的對話框,並立即開始新的對話方塊。 不過,父對話既不會繼續,也不會收到通知。
另請參閱
繼承自 DialogContext.replaceDialog
repromptDialog()
要求使用中的對話框重新提示用戶輸入。
function repromptDialog(): Promise<void>
傳回
Promise<void>
備註
這會呼叫使用中對話框的 repromptDialog 方法。
例如:
await dc.repromptDialog();
繼承自 DialogContext.repromptDialog