WaterfallDialog class
Ein Wasserfall ist ein Dialogfeld, das für die Aufforderung eines Benutzers mit einer Reihe von Fragen optimiert ist.
- Extends
-
Dialog<O>
Hinweise
Wasserfälle akzeptieren einen Stapel von Funktionen, die in Folge ausgeführt werden. Jeder Wasserfallschritt kann eine Frage des Benutzers stellen, und die Antwort des Benutzers wird über step.result
an den nächsten Schritt im Wasserfall übergeben. Ein spezielles step.value
-Objekt kann verwendet werden, um Werte zwischen Schritten zu speichern:
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;
Konstruktoren
Waterfall |
Erstellt ein neues Wasserfalldialogfeld mit dem angegebenen Array von Schritten. |
Eigenschaften
id | Eindeutige ID des Dialogfelds. Legt die eindeutige ID des Dialogfelds fest. |
telemetry |
Ruft den Telemetrieclient für dieses Dialogfeld ab. Legt den Telemetrieclient für dieses Dialogfeld fest. |
Geerbte Eigenschaften
End |
Ruft ein Standardmäßiges End-of-Turn-Ergebnis ab. |
Methoden
add |
Fügt dem Wasserfall einen neuen Schritt hinzu. |
begin |
Wird aufgerufen, wenn das WaterfallDialog- gestartet und auf den Dialogstapel verschoben wird. |
continue |
Wird aufgerufen, wenn die WaterfallDialog-fortgesetzt, wobei es sich um das aktive Dialogfeld handelt und der Benutzer mit einem neuen Activityantwortet. |
end |
Wird aufgerufen, wenn das Dialogfeld beendet wird. |
get |
Ruft die Dialogversion ab, die aus der ID und der Anzahl der Schritte besteht. |
resume |
Wird aufgerufen, wenn ein untergeordnetes WaterfallDialog seine Drehung abgeschlossen hat, und gibt das Steuerelement zu diesem Dialogfeld zurück. |
Geerbte Methoden
configure(Record<string, unknown>) | Fluent-Methode zum Konfigurieren des Objekts. |
get |
|
on |
Wird aufgerufen, wenn ein Ereignis mit |
reprompt |
Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird der Benutzer erneut zur Eingabe aufgefordert. |
Details zum Konstruktor
WaterfallDialog(string, WaterfallStep<O>[])
Erstellt ein neues Wasserfalldialogfeld mit dem angegebenen Array von Schritten.
new WaterfallDialog(dialogId: string, steps?: WaterfallStep<O>[])
Parameter
- dialogId
-
string
Eindeutige ID des Dialogfelds innerhalb der Komponente oder Festlegen, dass es hinzugefügt wird.
- steps
-
WaterfallStep<O>[]
(Optional) Array von asynchronen Wasserfallschrittfunktionen.
Hinweise
Details zum Erstellen einer gültigen Schrittfunktion finden Sie in der addStep() Funktion.
Details zur Eigenschaft
id
Eindeutige ID des Dialogfelds. Legt die eindeutige ID des Dialogfelds fest.
string id
Eigenschaftswert
string
Die ID für das Dialogfeld.
Hinweise
Dies wird automatisch generiert, wenn nicht angegeben.
telemetryClient
Ruft den Telemetrieclient für dieses Dialogfeld ab. Legt den Telemetrieclient für dieses Dialogfeld fest.
BotTelemetryClient telemetryClient
Eigenschaftswert
BotTelemetryClient
Der BotTelemetryClient für die Protokollierung verwendet werden.
Geerbte Eigenschaftsdetails
EndOfTurn
Ruft ein Standardmäßiges End-of-Turn-Ergebnis ab.
static EndOfTurn: DialogTurnResult
Eigenschaftswert
Hinweise
Dieses Ergebnis gibt an, dass ein Dialogfeld (oder ein logischer Schritt innerhalb eines Dialogfelds) die Verarbeitung für die aktuelle Drehung abgeschlossen hat, noch aktiv ist und auf weitere Eingaben wartet.
Details zur Methode
addStep(WaterfallStep<O>)
Fügt dem Wasserfall einen neuen Schritt hinzu.
function addStep(step: WaterfallStep<O>): this
Parameter
- step
Asynchrone Schrittfunktion, die aufgerufen werden soll.
Gibt zurück
this
Wasserfalldialogfeld für Fluent-Anrufe an addStep()
.
Hinweise
Alle Schrittfunktionen sollten asynchron sein und einen DialogTurnResult
zurückgeben. Die an Ihre Funktion übergebene WaterfallStepContext
wird von DialogContext
abgeleitet und enthält zahlreiche Stapelmanipulationsmethoden, die eine DialogTurnResult
zurückgeben, sodass Sie in der Regel nur das Ergebnis aus der von Ihnen aufgerufenen DialogContext-Methode zurückgeben können.
Die Schrittfunktion selbst kann eine asynchrone Schließung sein:
const helloDialog = new WaterfallDialog('hello');
helloDialog.addStep(async (step) => {
await step.context.sendActivity(`Hello World!`);
return await step.endDialog();
});
Eine benannte asynchrone Funktion:
async function helloWorldStep(step) {
await step.context.sendActivity(`Hello World!`);
return await step.endDialog();
}
helloDialog.addStep(helloWorldStep);
Oder eine Klassenmethode, die an den this
Zeiger gebunden wurde:
helloDialog.addStep(this.helloWorldStep.bind(this));
beginDialog(DialogContext, O)
Wird aufgerufen, wenn das WaterfallDialog- gestartet und auf den Dialogstapel verschoben wird.
function beginDialog(dc: DialogContext, options?: O): Promise<DialogTurnResult>
Parameter
Die DialogContext- für die aktuelle Unterhaltungswende.
- options
-
O
Optional, erste Informationen, die an das Dialogübergeben werden sollen.
Gibt zurück
Promise<DialogTurnResult>
Eine Zusage, die den asynchronen Vorgang darstellt.
Hinweise
Wenn die Aufgabe erfolgreich ist, gibt das Ergebnis an, ob das Dialogfeld noch aktiv ist, nachdem die Drehung vom Dialogfeld verarbeitet wurde.
continueDialog(DialogContext)
Wird aufgerufen, wenn die WaterfallDialog-fortgesetzt, wobei es sich um das aktive Dialogfeld handelt und der Benutzer mit einem neuen Activityantwortet.
function continueDialog(dc: DialogContext): Promise<DialogTurnResult>
Parameter
Die DialogContext- für die aktuelle Unterhaltungswende.
Gibt zurück
Promise<DialogTurnResult>
Eine Zusage, die den asynchronen Vorgang darstellt.
Hinweise
Wenn die Aufgabe erfolgreich ist, gibt das Ergebnis an, ob das Dialogfeld noch aktiv ist, nachdem die Drehung vom Dialogfeld verarbeitet wurde. Das Ergebnis kann auch einen Rückgabewert enthalten.
endDialog(TurnContext, DialogInstance, DialogReason)
Wird aufgerufen, wenn das Dialogfeld beendet wird.
function endDialog(context: TurnContext, instance: DialogInstance, reason: DialogReason): Promise<void>
Parameter
- context
-
TurnContext
Kontext für die aktuelle Unterhaltungswende.
- instance
- DialogInstance
Die Instanz des aktuellen Dialogfelds.
- reason
- DialogReason
Der Grund, warum das Dialogfeld beendet wird.
Gibt zurück
Promise<void>
getVersion()
Ruft die Dialogversion ab, die aus der ID und der Anzahl der Schritte besteht.
function getVersion(): string
Gibt zurück
string
Dialogversion, bestehend aus der ID und der Anzahl der Schritte.
resumeDialog(DialogContext, DialogReason, any)
Wird aufgerufen, wenn ein untergeordnetes WaterfallDialog seine Drehung abgeschlossen hat, und gibt das Steuerelement zu diesem Dialogfeld zurück.
function resumeDialog(dc: DialogContext, reason: DialogReason, result?: any): Promise<DialogTurnResult>
Parameter
Die DialogContext- für die aktuelle Unterhaltung.
- reason
- DialogReason
(xref:botbuilder-dialogs. DialogReason) warum das Dialogfeld fortgesetzt wurde.
- result
-
any
Optionaler Wert, der aus dem aufgerufenen Dialogfeld zurückgegeben wurde. Der Typ des zurückgegebenen Werts hängt vom untergeordneten Dialogfeld ab.
Gibt zurück
Promise<DialogTurnResult>
Eine Zusage, die den asynchronen Vorgang darstellt.
Details zur geerbten Methode
configure(Record<string, unknown>)
Fluent-Methode zum Konfigurieren des Objekts.
function configure(config: Record<string, unknown>): this
Parameter
- config
-
Record<string, unknown>
Anzuwendende Konfigurationseinstellungen.
Gibt zurück
this
Die konfigurierbaren nach Abschluss des Vorgangs.
geerbt vonKonfigurierbar.configure
getConverter(string)
function getConverter(_property: string): Converter | ConverterFactory
Parameter
- _property
-
string
Der Schlüssel der Konfiguration der bedingten Auswahl.
Gibt zurück
Der Konverter für die Selektorkonfiguration.
Geerbt vonKonfigurierbar.getConverter
onDialogEvent(DialogContext, DialogEvent)
Wird aufgerufen, wenn ein Ereignis mit DialogContext.emitEvent()
ausgelöst wurde, entweder durch das aktuelle Dialogfeld oder ein Dialogfeld, das das aktuelle Dialogfeld gestartet hat.
function onDialogEvent(dc: DialogContext, e: DialogEvent): Promise<boolean>
Parameter
Der Dialogkontext für die aktuelle Unterhaltungswende.
Das ausgelöste Ereignis.
Gibt zurück
Promise<boolean>
True, wenn das Ereignis vom aktuellen Dialogfeld behandelt wird und Bubbling beendet werden soll.
geerbt vonDialog.onDialogEvent
repromptDialog(TurnContext, DialogInstance)
Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird der Benutzer erneut zur Eingabe aufgefordert.
function repromptDialog(_context: TurnContext, _instance: DialogInstance): Promise<void>
Parameter
- _context
-
TurnContext
Das Kontextobjekt für die Drehung.
- _instance
- DialogInstance
Aktuelle Statusinformationen für dieses Dialogfeld.
Gibt zurück
Promise<void>
Hinweise
Abgeleitete Dialogfelder, die validierungs- und erneute Aufforderungslogik unterstützen, sollten diese Methode überschreiben. Standardmäßig hat diese Methode keine Auswirkung.
Die DialogContext- ruft diese Methode auf, wenn das aktuelle Dialogfeld eingaben vom Benutzer erneut anfordern soll. Diese Methode wird für Eingabeaufforderungsdialoge implementiert.
Siehe auch
geerbt vonDialog.repromptDialog-