IDialogWaterfallStep interface
作为步骤传递的函数的签名 DialogAction.waterfall()。
瀑布图允许使用一系列问题提示用户获取信息。 瀑布的每个步骤都可以执行其中一个内置 提示,通过调用 session.beginDialog()启动新对话,使用 skip()手动转到瀑布图的下一步,或终止瀑布。
从瀑布步骤调用对话或内置提示时,该对话或提示的结果将通过 results 参数传递到瀑布的下一步。
用户可以说出诸如“别介意”之类的内容来取消内置提示,因此你应该至少在继续操作之前检查 results.response 来防范这一点。 通过查看返回 results 的 代码 确定瀑布继续的原因的更详细说明。恢复。
可以使用传入的 skip() 函数手动转到瀑布的下一步。 使用 skip({ response: "some text" }) 调用 可以更准确地模拟内置提示的结果,并可以简化整个瀑布逻辑。
可以使用调用 skip() 或根本不启动另一个提示或对话,提前终止瀑布图。
注意: 瀑布图具有隐藏的最后一个步骤,如果从上一步调用提示或对话,将自动结束当前对话。 在具有深层对话堆栈,并且希望调用 session.endDialog() 堆栈上最后一个子级来结束整个堆栈,这非常有用。 最后一个子级的关闭将触发其所有父级移动到此隐藏步骤,这将级联在堆栈上一直级联。 这通常是一种所需的行为,但如果你想避免它或将其停止在中间的某个位置,则需要向瀑布末尾添加一个步骤,该步骤不执行任何操作或调用诸如 session.send() 之类的内容, 不会向前推进瀑布。