次の方法で共有


IDialogWaterfallStep interface

DialogAction.waterfall()を するためのステップとして渡される関数のシグネチャ。 ウォーターフォールを使用すると、一連の質問を使用してユーザーに情報の入力を求められます。 ウォーターフォールの各ステップでは、組み込みの プロンプトのいずれかを実行するか、session.beginDialog()を呼び出して新しいダイアログを開始するか、skip()を使用してウォーターフォールの次のステップに進むか、ウォーターフォールを終了します。

ダイアログまたは組み込みのプロンプトがウォーターフォール ステップから呼び出されると、そのダイアログまたはプロンプトの結果は、results パラメーターを介してウォーターフォールの次のステップに渡されます。 ユーザーは、組み込みのプロンプトを取り消すために "気にしない" などと言うことができます。そのため、少なくとも先に進む前に results.response をチェックして、これを防ぐために必要です。 ウォーターフォールが継続されている理由のより詳細な説明は、結果に対して返される コード 調べることで判断できます。再開された。

渡された skip() 関数を使用して、ウォーターフォールの次のステップに手動で進めることができます。 skip({ response: "some text" }) を使用して を呼び出すと、組み込みのプロンプトからの結果をより正確に模倣でき、ウォーターフォール ロジック全体を簡略化できます。

ウォーターフォールは、skip() の呼び出しを使用してウォーターフォールのすべてのステップを通過するか、単に別のプロンプトまたはダイアログを開始しないことで、早期に終了できます。

注意: ウォーターフォールには非表示の最後のステップがあり、最後のステップからプロンプトまたはダイアログを呼び出すと、現在のダイアログが自動的に終了します。 これは、ダイアログの深いスタックがあり、スタックの最後の子から session.endDialog() を 呼び出してスタック全体を終了する場合に便利です。 最後の子が閉じると、すべての親がこの隠されたステップに移動し、スタックの上まで閉じるのが連鎖します。 通常、これは望ましい動作ですが、ウォーターフォールを回避したり、途中で停止したりする場合は、ウォーターフォールの末尾にステップを追加する必要があります。ウォーターフォールの末尾に何も行わないか、ウォーターフォールを進めない session.send() などを呼び出します。