WaterfallStepContext class
傳入至 WaterfallStep
的內容物件。
- Extends
建構函式
Waterfall |
建立新的 WaterfallStepContext 實例。 |
屬性
active |
|
child | |
dialog |
|
index | 正在執行之目前瀑布式步驟的索引。 |
options | 當啟動步驟瀑布式對話時,任何傳遞至步驟的選項 |
reason | 瀑布步驟執行的原因。 |
result | 在上一個瀑布步驟中呼叫的對話或提示所傳回的結果。 |
values | 值字典,所有瀑布步驟都會保存這些值。 |
繼承的屬性
context | 取得回合的內容物件。 |
dialogs | 取得可以直接從這個內容呼叫的對話框。 |
parent | 這個對話內容的父對話內容,如果這個內容沒有父系,則 |
services | 取得與這個對話內容相關的服務集合。 |
stack | 取得目前的對話框堆疊。 |
state | 取得 DialogStateManager,可管理所有記憶體範圍的檢視。 |
方法
next(any) | 跳到下一個瀑布步驟。 |
繼承的方法
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 |
要求使用中的對話框重新提示用戶輸入。 |
建構函式詳細資料
WaterfallStepContext(DialogContext, WaterfallStepInfo<O>)
建立新的 WaterfallStepContext 實例。
new WaterfallStepContext(dc: DialogContext, info: WaterfallStepInfo<O>)
參數
目前交談回合的對話內容。
- info
用來初始化步驟內容的值。
屬性詳細資料
activeDialog
DialogInstance | undefined activeDialog
屬性值
DialogInstance | undefined
對話框頂端對話框的狀態資訊,如果堆疊是空的,則為 undefined
。
child
dialogManager
警告
此 API 現已淘汰。
This property serves no function.
DialogManager dialogManager
屬性值
目前的對話框管理員實例。 這個屬性已被取代。
index
正在執行之目前瀑布式步驟的索引。
number index
屬性值
number
正在執行之目前瀑布式步驟的索引。
options
當啟動步驟瀑布式對話時,任何傳遞至步驟的選項 DialogContext.beginDialog()
。
O options
屬性值
O
呼叫瀑布式對話的任何選項。
reason
result
在上一個瀑布步驟中呼叫的對話或提示所傳回的結果。
any result
屬性值
any
上一個瀑布步驟的結果。
values
值字典,所有瀑布步驟都會保存這些值。
object values
屬性值
object
值字典,所有瀑布步驟都會保存這些值。
繼承的屬性詳細資料
context
dialogs
parent
這個對話內容的父對話內容,如果這個內容沒有父系,則 undefined
。
parent: DialogContext | undefined
屬性值
DialogContext | undefined
備註
當它嘗試啟動對話時,對話內容會在其 對話框中搜尋 Dialog.id,。 如果在此對話內容中找不到要啟動的對話框,則會在其父對話內容中搜尋等等。
services
取得與這個對話內容相關的服務集合。
services: TurnContextStateCollection
屬性值
TurnContextStateCollection
stack
state
取得 DialogStateManager,可管理所有記憶體範圍的檢視。
state: DialogStateManager
屬性值
方法詳細資料
next(any)
跳到下一個瀑布步驟。
function next(result?: any): Promise<DialogTurnResult>
參數
- result
-
any
(選擇性) 結果,以傳遞至下一個步驟。
傳回
Promise<DialogTurnResult>
DialogTurnResult 的承諾。
備註
return await step.skip();
繼承的方法的詳細資料
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 方法,再從堆棧中移除對話方塊。
如果一開始堆疊上有任何對話框,則傳回值的 狀態取消;否則,它會 空。
此範例會先清除對話框堆疊,dc
,再啟動 『bookFlight』 對話方塊。
await dc.cancelAllDialogs();
return await dc.beginDialog('bookFlight');
另請參閱
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.`);
}
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
自選。 要傳遞至父邏輯的結果。 這可能是堆疊上的下一個對話框,如果這是堆疊上的最後一個對話框、父對話內容或 Bot 的回合處理程式。
傳回
Promise<DialogTurnResult>
解決對話框回合結果的承諾。
備註
父 對話框是對話堆疊上的下一個對話方塊,如果有的話。 這個方法會呼叫父系的 Dialog.resumeDialog 方法,並傳遞結束對話傳回的結果。 如果沒有父對話框,回合就會結束,而結果會透過傳回物件的 結果 屬性提供給 Bot 使用。
傳回物件的 狀態 描述此方法完成之後對話框堆疊的狀態。
一般而言,您會從特定對話的邏輯中呼叫此專案,以向對話內容發出訊號,指出對話已完成、對話應該從堆棧中移除,而且父對話應該繼續。
例如:
return await dc.endDialog(returnValue);
另請參閱
findDialog(string)
搜尋具有指定標識碼的對話框。
function findDialog(dialogId: string): Dialog | undefined
參數
- dialogId
-
string
要搜尋之對話框的標識碼。
傳回
Dialog | undefined
所提供標識碼的對話框。
備註
如果在與這個對話內容相關聯的 DialogSet 中找不到要啟動的對話,它會嘗試在其父對話內容中尋找對話框。
另請參閱
- 對話框
- 父系
getLocale()
取得 DialogContext 中的 CultureInfo。
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();