IDialogWaterfallStep interface

Signatur für Funktionen, die als Schritte an DialogAction.waterfall()übergeben werden. Mithilfe von Wasserfällen können Sie einen Benutzer zur Eingabe von Informationen auffordern, indem Sie eine Abfolge von Fragen verwenden. Jeder Schritt des Wasserfalls kann entweder eine der integrierten Aufforderungenausführen, ein neues Dialogfeld starten, indem sie session.beginDialog()aufrufen, zum nächsten Schritt des Wasserfalls manuell mit skip()wechseln oder den Wasserfall beenden.

Wenn entweder ein Dialogfeld oder eine integrierte Eingabeaufforderung aus einem Wasserfallschritt aufgerufen wird, werden die Ergebnisse dieses Dialogfelds oder der Eingabeaufforderung über den parameter results an den nächsten Schritt des Wasserfalls übergeben. Benutzer können dinge wie "nie daran" sagen, um die integrierten Eingabeaufforderungen abzubrechen, damit Sie vor diesem Schutz schützen sollten, indem Sie zumindest auf results.response überprüfen, bevor Sie fortfahren. Eine ausführlichere Erläuterung, warum der Wasserfall fortgesetzt wird, kann bestimmt werden, indem sie den Code für results.resumedzurückgegeben.

Sie können mit der übergebenen skip()-Funktion manuell zum nächsten Schritt des Wasserfalls wechseln. Wenn Sie skip({ response: "some text" }) mit einem IDialogResult- aufrufen, können Sie die Ergebnisse einer integrierten Eingabeaufforderung genauer nachahmen und Ihre allgemeine Wasserfalllogik vereinfachen.

Sie können einen Wasserfall frühzeitig beenden, indem Sie entweder durch jeden Schritt des Wasserfalls fallen, indem Sie Anrufe an skip() oder einfach keine weitere Eingabeaufforderung oder ein anderes Dialogfeld starten.

Hinweis: Wasserfälle haben einen ausgeblendeten letzten Schritt, der das aktuelle Dialogfeld automatisch beendet, wenn Sie eine Eingabeaufforderung oder ein Dialogfeld aus dem letzten Schritt aufrufen. Dies ist hilfreich, wenn Sie über einen tiefen Stapel von Dialogfeldern verfügen und einen Aufruf session.endDialog() vom letzten untergeordneten Element im Stapel zum Beenden des gesamten Stapels wünschen. Der Schließen des letzten Kindes löst alle übergeordneten Elemente aus, um zu diesem ausgeblendeten Schritt zu wechseln, der die Nähe bis zum Stapel überlappen wird. Dies ist in der Regel ein gewünschtes Verhalten, aber wenn Sie es vermeiden oder an einer beliebigen Stelle in der Mitte beenden möchten, müssen Sie am Ende Ihres Wasserfalls einen Schritt hinzufügen, der entweder nichts tut oder etwas wie session.send() aufruft, das den Wasserfall nicht vorwärts voranschreiten wird.