WaterfallDialog class
Une cascade est un dialogue optimisé pour inviter un utilisateur avec une série de questions.
- Extends
-
Dialog<O>
Remarques
Les cascades acceptent une pile de fonctions qui seront exécutées en séquence. Chaque étape en cascade peut poser une question à l’utilisateur et la réponse de l’utilisateur sera passée à l’étape suivante de la cascade via step.result
. Un objet step.value
spécial peut être utilisé pour conserver des valeurs entre les étapes :
const { ComponentDialog, WaterfallDialog, TextPrompt, NumberPrompt } = require('botbuilder-dialogs);
class FillProfileDialog extends ComponentDialog {
constructor(dialogId) {
super(dialogId);
// Add control flow dialogs
this.addDialog(new WaterfallDialog('start', [
async (step) => {
// Ask user their name
return await step.prompt('namePrompt', `What's your name?`);
},
async (step) => {
// Remember the users answer
step.values['name'] = step.result;
// Ask user their age.
return await step.prompt('agePrompt', `Hi ${step.values['name']}. How old are you?`);
},
async (step) => {
// Remember the users answer
step.values['age'] = step.result;
// End the component and return the completed profile.
return await step.endDialog(step.values);
}
]));
// Add prompts
this.addDialog(new TextPrompt('namePrompt'));
this.addDialog(new NumberPrompt('agePrompt'))
}
}
module.exports.FillProfileDialog = FillProfileDialog;
Constructeurs
Waterfall |
Crée un dialogue en cascade contenant le tableau d’étapes donné. |
Propriétés
id | ID unique de la boîte de dialogue. Définit l’ID unique de la boîte de dialogue. |
telemetry |
Obtient le client de télémétrie pour cette boîte de dialogue. Définit le client de télémétrie pour cette boîte de dialogue. |
Propriétés héritées
End |
Obtient un résultat de fin de tour par défaut. |
Méthodes
add |
Ajoute une nouvelle étape à la cascade. |
begin |
Appelé lorsque le CascadeDialog |
continue |
Appelé lorsque le CascadeDialog |
end |
Appelé lorsque la boîte de dialogue se termine. |
get |
Obtient la version de la boîte de dialogue, composée de l’ID et du nombre d’étapes. |
resume |
Appelé lorsqu’un enfant WaterfallDialog terminé son tour, retournant le contrôle à cette boîte de dialogue. |
Méthodes héritées
configure(Record<string, unknown>) | Méthode Fluent pour la configuration de l’objet. |
get |
|
on |
Appelé lorsqu’un événement a été déclenché, à l’aide de |
reprompt |
En cas de substitution dans une classe dérivée, repromène l’utilisateur pour l’entrée. |
Détails du constructeur
WaterfallDialog(string, WaterfallStep<O>[])
Crée un dialogue en cascade contenant le tableau d’étapes donné.
new WaterfallDialog(dialogId: string, steps?: WaterfallStep<O>[])
Paramètres
- dialogId
-
string
ID unique de la boîte de dialogue dans le composant ou définissez son ajout.
- steps
-
WaterfallStep<O>[]
(Facultatif) tableau de fonctions d’étape en cascade asynchrones.
Remarques
Consultez la fonction addStep() pour plus d’informations sur la création d’une fonction d’étape valide.
Détails de la propriété
id
ID unique de la boîte de dialogue. Définit l’ID unique de la boîte de dialogue.
string id
Valeur de propriété
string
ID de la boîte de dialogue.
Remarques
Cette opération est générée automatiquement si elle n’est pas spécifiée.
telemetryClient
Obtient le client de télémétrie pour cette boîte de dialogue. Définit le client de télémétrie pour cette boîte de dialogue.
BotTelemetryClient telemetryClient
Valeur de propriété
BotTelemetryClient
Le BotTelemetryClient à utiliser pour la journalisation.
Détails de la propriété héritée
EndOfTurn
Obtient un résultat de fin de tour par défaut.
static EndOfTurn: DialogTurnResult
Valeur de propriété
Remarques
Ce résultat indique qu’un dialogue (ou une étape logique dans un dialogue) a terminé le traitement du tour actuel, est toujours actif et attend plus d’entrée.
héritée dedialog.EndOfTurn
Détails de la méthode
addStep(WaterfallStep<O>)
Ajoute une nouvelle étape à la cascade.
function addStep(step: WaterfallStep<O>): this
Paramètres
- step
Fonction d’étape asynchrone à appeler.
Retours
this
Dialogue en cascade pour les appels Fluent à addStep()
.
Remarques
Toutes les fonctions d’étape doivent être asynchrones et retourner une DialogTurnResult
. Le WaterfallStepContext
passé dans votre fonction dérive de DialogContext
et contient de nombreuses méthodes de manipulation de pile qui retournent un DialogTurnResult
afin de pouvoir simplement renvoyer le résultat de la méthode DialogContext que vous appelez.
La fonction d’étape elle-même peut être une fermeture asynchrone :
const helloDialog = new WaterfallDialog('hello');
helloDialog.addStep(async (step) => {
await step.context.sendActivity(`Hello World!`);
return await step.endDialog();
});
Fonction asynchrone nommée :
async function helloWorldStep(step) {
await step.context.sendActivity(`Hello World!`);
return await step.endDialog();
}
helloDialog.addStep(helloWorldStep);
Ou une méthode de classe liée à son pointeur this
:
helloDialog.addStep(this.helloWorldStep.bind(this));
beginDialog(DialogContext, O)
Appelé lorsque le CascadeDialog
function beginDialog(dc: DialogContext, options?: O): Promise<DialogTurnResult>
Paramètres
DialogContext pour le tour de conversation actuel.
Retours
Promise<DialogTurnResult>
Promesse représentant l’opération asynchrone.
Remarques
Si la tâche réussit, le résultat indique si la boîte de dialogue est toujours active une fois que le tour a été traité par la boîte de dialogue.
continueDialog(DialogContext)
Appelé lorsque le CascadeDialog
function continueDialog(dc: DialogContext): Promise<DialogTurnResult>
Paramètres
DialogContext pour le tour de conversation actuel.
Retours
Promise<DialogTurnResult>
Promesse représentant l’opération asynchrone.
Remarques
Si la tâche réussit, le résultat indique si la boîte de dialogue est toujours active une fois le tour traité par la boîte de dialogue. Le résultat peut également contenir une valeur de retour.
endDialog(TurnContext, DialogInstance, DialogReason)
Appelé lorsque la boîte de dialogue se termine.
function endDialog(context: TurnContext, instance: DialogInstance, reason: DialogReason): Promise<void>
Paramètres
- context
-
TurnContext
Contexte pour le tour de conversation actuel.
- instance
- DialogInstance
Instance de la boîte de dialogue active.
- reason
- DialogReason
Raison pour laquelle la boîte de dialogue se termine.
Retours
Promise<void>
getVersion()
Obtient la version de la boîte de dialogue, composée de l’ID et du nombre d’étapes.
function getVersion(): string
Retours
string
Version de boîte de dialogue, composée de l’ID et du nombre d’étapes.
resumeDialog(DialogContext, DialogReason, any)
Appelé lorsqu’un enfant WaterfallDialog terminé son tour, retournant le contrôle à cette boîte de dialogue.
function resumeDialog(dc: DialogContext, reason: DialogReason, result?: any): Promise<DialogTurnResult>
Paramètres
DialogContext pour le tour actuel de la conversation.
- reason
- DialogReason
(xref :botbuilder-dialogs. DialogReason) pourquoi le dialogue a repris.
- result
-
any
Facultatif, valeur retournée à partir de la boîte de dialogue appelée. Le type de la valeur retournée dépend de la boîte de dialogue enfant.
Retours
Promise<DialogTurnResult>
Promesse représentant l’opération asynchrone.
Détails de la méthode héritée
configure(Record<string, unknown>)
Méthode Fluent pour la configuration de l’objet.
function configure(config: Record<string, unknown>): this
Paramètres
- config
-
Record<string, unknown>
Paramètres de configuration à appliquer.
Retours
this
configurable une fois l’opération terminée.
héritée deConfigurable.configure
getConverter(string)
function getConverter(_property: string): Converter | ConverterFactory
Paramètres
- _property
-
string
Clé de la configuration du sélecteur conditionnel.
Retours
Convertisseur de la configuration du sélecteur.
héritée deconfigurable.getConverter
onDialogEvent(DialogContext, DialogEvent)
Appelé lorsqu’un événement a été déclenché, à l’aide de DialogContext.emitEvent()
, par la boîte de dialogue active ou par une boîte de dialogue que la boîte de dialogue active a démarré.
function onDialogEvent(dc: DialogContext, e: DialogEvent): Promise<boolean>
Paramètres
Contexte de boîte de dialogue pour le tour de conversation actuel.
Événement déclenché.
Retours
Promise<boolean>
True si l’événement est géré par la boîte de dialogue actuelle et que le bouglage doit s’arrêter.
héritée deDialog.onDialogEvent
repromptDialog(TurnContext, DialogInstance)
En cas de substitution dans une classe dérivée, repromène l’utilisateur pour l’entrée.
function repromptDialog(_context: TurnContext, _instance: DialogInstance): Promise<void>
Paramètres
- _context
-
TurnContext
Objet de contexte pour le tour.
- _instance
- DialogInstance
Informations d’état actuelles pour cette boîte de dialogue.
Retours
Promise<void>
Remarques
Les dialogues dérivés qui prennent en charge la validation et la logique de nouvelle invite doivent remplacer cette méthode. Par défaut, cette méthode n’a aucun effet.
Le DialogContext appelle cette méthode lorsque la boîte de dialogue active doit demander à nouveau l’entrée de l’utilisateur. Cette méthode est implémentée pour les dialogues d’invite.
Voir également
héritée dedialog.repromptDialog