共用方式為


IDialogWaterfallStep interface

傳遞為步驟的函式簽章,DialogAction.waterfall()。 瀑布圖可讓您使用一連串的問題提示使用者提供資訊。 瀑布的每個步驟都可以執行其中一個內建 提示、呼叫 session.beginDialog()來啟動新的對話框,然後使用 skip()手動移至瀑布的下一個步驟,或終止瀑布。

從瀑布步驟呼叫對話或內建提示時,對話或提示的結果會透過 results 參數傳遞至瀑布的下一個步驟。 使用者可以說「別不介意」等專案取消內建提示,因此您應該先檢查是否有 results.response,再繼續。 查看傳回 results 的 程式代碼,來判斷瀑布繼續執行的原因。resumed。

您可以使用傳入的 skip() 函式,手動前進到瀑布的下一個步驟。 使用 IDialogResult 呼叫 skip({ response: "some text" }) 可讓您更準確地模擬內建提示的結果,並簡化整體瀑布邏輯。

您可以使用呼叫 skip() 或直接不啟動另一個提示或對話,提早終止瀑布。

注意:如果您從最後一個步驟呼叫提示或對話框, 瀑布有隱藏的最後一個步驟,這會自動結束目前的對話框。 當您有深層對話堆疊,而且想要從堆疊上最後一個子系呼叫會話.endDialog() ,以結束整個堆棧,這非常有用。 最後一個子系的關閉會觸發其所有父系移至這個隱藏步驟,而這個隱藏步驟會串聯堆棧的關閉。 這通常是想要的行為,但如果您想要避免或將它停止在中間的某個地方,您需要將步驟新增至瀑布結尾,不執行任何動作或呼叫類似 session.send() 之類的專案, 不會向前推進瀑布。