IDialogWaterfallStep interface
Signature pour les fonctions passées en tant qu’étapes pour DialogAction.waterfall().
Les cascades vous permettent d’inviter un utilisateur à entrer des informations à l’aide d’une séquence de questions. Chaque étape de la cascade peut exécuter l’une des invites intégrées, démarrer une nouvelle boîte de dialogue en appelant session.beginDialog(), passer à l’étape suivante de la cascade manuellement à l’aide de skip(), ou mettre fin à la cascade.
Quand un dialogue ou une invite intégrée est appelé à partir d’une étape en cascade, les résultats de ce dialogue ou de cette invite sont transmis via le paramètre results à l’étape suivante de la cascade.
Les utilisateurs peuvent dire des éléments tels que « jamais à l’esprit » pour annuler les invites intégrées afin de vous protéger contre cela en vérifiant au moins results.response avant de continuer. Une explication plus détaillée de la raison pour laquelle la cascade continue peut être déterminée en examinant le code retourné pour results.reprise.
Vous pouvez passer manuellement à l’étape suivante de la cascade à l’aide de la fonction skip() passée. L’appel skip({ response: "some text" }) avec un IDialogResult vous permet d’imiter plus précisément les résultats d’une invite intégrée et de simplifier votre logique en cascade globale.
Vous pouvez arrêter une cascade tôt en tombant à chaque étape de la cascade à l’aide d’appels à skip() ou simplement de ne pas démarrer une autre invite ou dialogue.
remarque : Cascades ont une dernière étape masquée qui met automatiquement fin à la boîte de dialogue actuelle si vous appelez une invite ou un dialogue à partir de la dernière étape. Cela est utile lorsque vous disposez d’une pile approfondie de dialogues et que vous souhaitez appeler session.endDialog() du dernier enfant sur la pile pour mettre fin à l’ensemble de la pile. La fermeture du dernier enfant déclenchera tous ses parents à passer à cette étape masquée, ce qui cascadera la fermeture jusqu’à la pile. Il s’agit généralement d’un comportement souhaité, mais si vous souhaitez l’éviter ou l’arrêter quelque part au milieu, vous devez ajouter une étape à la fin de votre cascade qui ne fait rien ou appelle quelque chose comme session.send() qui ne va pas avancer la cascade vers l’avant.