DialogContext class
Der Kontext für den aktuellen Dialogwechsel in Bezug auf ein bestimmtes DialogSet.
Hinweise
Dies umfasst den Turnkontext, Informationen zum Dialogsatz und den Status des Dialogstapels.
Verwenden Sie aus Code außerhalb eines Dialogfelds in der Gruppe DialogSet.createContext , um den Dialogkontext zu erstellen. Verwenden Sie dann die Methoden des Dialogkontexts, um den Fortschritt von Dialogen in der Gruppe zu verwalten.
Wenn Sie einen Dialog implementieren, ist der Dialogkontext ein Parameter, der für die verschiedenen Methoden verfügbar ist, die Sie überschreiben oder implementieren.
Beispiel:
const dc = await dialogs.createContext(turnContext);
const result = await dc.continueDialog();
Konstruktoren
Dialog |
Erstellt eine neue Instanz der DialogContext-Klasse . |
Dialog |
Erstellt eine neue Instanz der DialogContext-Klasse . |
Eigenschaften
active |
|
child | |
context | Ruft das Kontextobjekt für den Turn ab. |
dialog |
|
dialogs | Ruft die Dialoge ab, die direkt aus diesem Kontext aufgerufen werden können. |
parent | Der übergeordnete Dialogkontext für diesen Dialogkontext, oder |
services | Ruft die Dienstauflistung ab, die kontextbezogen mit diesem Dialogkontext ist. |
stack | Ruft den aktuellen Dialogstapel ab. |
state | Ruft den DialogStateManager ab, der die Ansicht aller Speicherbereiche verwaltet. |
Methoden
begin |
Startet eine Dialoginstanz und pusht sie auf den Dialogstapel. Erstellt eine neue Instanz des Dialogfelds und pusht sie auf den Stapel. |
cancel |
Bricht alle Dialoge im Dialogstapel ab und löscht den Stapel. |
continue |
Setzt die Ausführung des aktiven Dialogs fort, sofern vorhanden, indem dieser Dialogkontext an die Dialog.continueDialog-Methode übergeben wird. |
emit |
Sucht nach einem Dialogfeld mit einer angegebenen ID. |
end |
Beendet ein Dialogfeld und öffnet es aus dem Stapel. Gibt ein optionales Ergebnis an das übergeordnete Ergebnis des Dialogfelds zurück. |
find |
Sucht nach einem Dialogfeld mit einer angegebenen ID. |
get |
Rufen Sie cultureInfo in DialogContext ab. |
prompt(string, string | Partial<Activity> | Prompt |
Hilfsfunktion zur Vereinfachung der Formatierung der Optionen zum Aufrufen eines Eingabeaufforderungsdialogfelds. |
prompt(string, string | Partial<Activity> | Prompt |
Hilfsfunktion zur Vereinfachung der Formatierung der Optionen zum Aufrufen eines Eingabeaufforderungsdialogfelds. |
replace |
Beendet den aktiven Dialog und startet an seiner Stelle einen neuen Dialog. |
reprompt |
Fordert den aktiven Dialog auf, den Benutzer erneut zur Eingabe aufzufordern. |
Details zum Konstruktor
DialogContext(DialogSet, DialogContext, DialogState)
Erstellt eine neue Instanz der DialogContext-Klasse .
new DialogContext(dialogs: DialogSet, contextOrDC: DialogContext, state: DialogState)
Parameter
- contextOrDC
- DialogContext
Das TurnContext-Objekt für den aktuellen Turn des Bots.
- state
- DialogState
Das Zustandsobjekt, das zum Lesen und Schreiben von DialogState in den Speicher verwendet werden soll.
Hinweise
Wenn Sie eine DialogContext-Instanz übergeben, wird der Dialogkontext geklont.
DialogContext(DialogSet, TurnContext, DialogState)
Erstellt eine neue Instanz der DialogContext-Klasse .
new DialogContext(dialogs: DialogSet, contextOrDC: TurnContext, state: DialogState)
Parameter
- contextOrDC
-
TurnContext
Das TurnContext-Objekt für den aktuellen Turn des Bots.
- state
- DialogState
Das Zustandsobjekt, das zum Lesen und Schreiben von DialogState in den Speicher verwendet werden soll.
Hinweise
Wenn Sie eine DialogContext-Instanz übergeben, wird der Dialogkontext geklont.
Details zur Eigenschaft
activeDialog
DialogInstance | undefined activeDialog
Eigenschaftswert
DialogInstance | undefined
Die Statusinformationen für den Dialog oben im Dialogstapel oder undefined
, wenn der Stapel leer ist.
child
DialogContext | undefined child
Eigenschaftswert
DialogContext | undefined
Dialogkontext für untergeordnete Elemente, wenn der aktive Dialog ein Container ist.
context
Ruft das Kontextobjekt für den Turn ab.
context: TurnContext
Eigenschaftswert
TurnContext
dialogManager
Warnung
Diese API ist nun veraltet.
This property serves no function.
DialogManager dialogManager
Eigenschaftswert
Die aktuelle Dialog-Manager-Instanz. Diese Eigenschaft ist veraltet.
dialogs
Ruft die Dialoge ab, die direkt aus diesem Kontext aufgerufen werden können.
dialogs: DialogSet
Eigenschaftswert
parent
Der übergeordnete Dialogkontext für diesen Dialogkontext, oder undefined
, wenn dieser Kontext kein übergeordnetes Element aufweist.
parent: DialogContext | undefined
Eigenschaftswert
DialogContext | undefined
Hinweise
Wenn versucht wird, einen Dialog zu starten, sucht der Dialogkontext nach dem Dialog.id in seinen Dialogfeldern. Wenn das zu startende Dialogfeld in diesem Dialogkontext nicht gefunden wird, sucht es im übergeordneten Dialogkontext usw.
services
Ruft die Dienstauflistung ab, die kontextbezogen mit diesem Dialogkontext ist.
services: TurnContextStateCollection
Eigenschaftswert
TurnContextStateCollection
stack
state
Ruft den DialogStateManager ab, der die Ansicht aller Speicherbereiche verwaltet.
state: DialogStateManager
Eigenschaftswert
Details zur Methode
beginDialog(string, object)
Startet eine Dialoginstanz und pusht sie auf den Dialogstapel. Erstellt eine neue Instanz des Dialogfelds und pusht sie auf den Stapel.
function beginDialog(dialogId: string, options?: object): Promise<DialogTurnResult>
Parameter
- dialogId
-
string
ID des zu startenden Dialogfelds.
- options
-
object
Optional. Argumente, die beim Start an das Dialogfeld übergeben werden sollen.
Gibt zurück
Promise<DialogTurnResult>
eine Zusage, die in das Ergebnis des Dialogwechsels aufgelöst wird.
Hinweise
Wenn bereits ein aktives Dialogfeld auf dem Stapel vorhanden ist, wird dieser Dialog angehalten, bis es wieder der obere Dialog im Stapel ist.
Der Status des zurückgegebenen Objekts beschreibt den Status des Dialogstapels nach Abschluss dieser Methode.
Diese Methode löst eine Ausnahme aus, wenn das angeforderte Dialogfeld nicht in diesem Dialogkontext oder in einem seiner Vorgänger gefunden werden kann.
Beispiel:
const result = await dc.beginDialog('greeting', { name: user.name });
Weitere Informationen
cancelAllDialogs(boolean, string, any)
Bricht alle Dialoge im Dialogstapel ab und löscht den Stapel.
function cancelAllDialogs(cancelParents?: boolean, eventName?: string, eventValue?: any): Promise<DialogTurnResult>
Parameter
- cancelParents
-
boolean
Optional. Wenn true
auch alle übergeordneten Dialoge abgebrochen werden.
- eventName
-
string
Optional. Name eines benutzerdefinierten Ereignisses, das ausgelöst werden soll, wenn Dialoge abgebrochen werden. Dies ist standardmäßig cancelDialog.
- eventValue
-
any
Optional. Wert, der zusammen mit dem benutzerdefinierten Abbruchereignis übergeben werden soll.
Gibt zurück
Promise<DialogTurnResult>
eine Zusage, die in das Ergebnis des Dialogwechsels aufgelöst wird.
Hinweise
Dadurch wird die Dialog.endDialog-Methode der einzelnen Dialoge aufgerufen, bevor der Dialog aus dem Stapel entfernt wird.
Wenn anfänglich Dialoge auf dem Stapel vorhanden waren, wird der Status des Rückgabewerts abgebrochen. Andernfalls ist sie leer.
In diesem Beispiel wird der Dialogstapel gelöscht, dc
bevor ein "bookFlight"-Dialogfeld gestartet wird.
await dc.cancelAllDialogs();
return await dc.beginDialog('bookFlight');
Weitere Informationen
continueDialog()
Setzt die Ausführung des aktiven Dialogs fort, sofern vorhanden, indem dieser Dialogkontext an die Dialog.continueDialog-Methode übergeben wird.
function continueDialog(): Promise<DialogTurnResult>
Gibt zurück
Promise<DialogTurnResult>
eine Zusage, die in das Ergebnis des Dialogwechsels aufgelöst wird.
Hinweise
Nach Abschluss des Aufrufs können Sie die Antworteigenschaft des Turnkontexts überprüfen, um festzustellen, ob das Dialogfeld eine Antwort an den Benutzer gesendet hat.
Der Status des zurückgegebenen Objekts beschreibt den Status des Dialogstapels nach Abschluss dieser Methode.
In der Regel rufen Sie dies innerhalb des Turn-Handlers Ihres Bots auf.
Beispiel:
const result = await dc.continueDialog();
if (result.status == DialogTurnStatus.empty && dc.context.activity.type == ActivityTypes.message) {
// Send fallback message
await dc.context.sendActivity(`I'm sorry. I didn't understand.`);
}
emitEvent(string, any, boolean, boolean)
Sucht nach einem Dialogfeld mit einer angegebenen ID.
function emitEvent(name: string, value?: any, bubble?: boolean, fromLeaf?: boolean): Promise<boolean>
Parameter
- name
-
string
Der Name des auszulösenden Ereignisses.
- value
-
any
Optional. Wert, der zusammen mit dem Ereignis gesendet werden soll.
- bubble
-
boolean
Optional. Flag, um zu steuern, ob das Ereignis in die Blase des übergeordneten Elements eingeblasen werden soll, wenn es nicht lokal behandelt wird. Der Standardwert true
ist .
- fromLeaf
-
boolean
Optional. Gibt an, ob das Ereignis von einem Blattknoten ausgegeben wird.
Gibt zurück
Promise<boolean>
true
, wenn das Ereignis behandelt wurde.
Hinweise
Gibt ein benanntes Ereignis für den aktuellen Dialog oder eine Person aus, die es gestartet hat, um es zu behandeln.
endDialog(any)
Beendet ein Dialogfeld und öffnet es aus dem Stapel. Gibt ein optionales Ergebnis an das übergeordnete Ergebnis des Dialogfelds zurück.
function endDialog(result?: any): Promise<DialogTurnResult>
Parameter
- result
-
any
Optional. Ein Ergebnis, das an die übergeordnete Logik übergeben werden soll. Dies kann der nächste Dialog im Stapel sein, oder wenn dies der letzte Dialog auf dem Stapel, ein übergeordneter Dialogkontext oder der Turn-Handler des Bots war.
Gibt zurück
Promise<DialogTurnResult>
eine Zusage, die in das Ergebnis des Dialogwechsels aufgelöst wird.
Hinweise
Der übergeordnete Dialog ist der nächste Dialog im Dialogstapel, sofern vorhanden. Diese Methode ruft die Dialog.resumeDialog-Methode des übergeordneten Elements auf und übergibt das vom Enddialogfeld zurückgegebene Ergebnis. Wenn kein übergeordnetes Dialogfeld vorhanden ist, endet der Turn, und das Ergebnis steht dem Bot über die Ergebniseigenschaft des zurückgegebenen Objekts zur Verfügung.
Der Status des zurückgegebenen Objekts beschreibt den Status des Dialogstapels nach Abschluss dieser Methode.
In der Regel rufen Sie dies aus der Logik für einen bestimmten Dialog auf, um dem Dialogkontext zu signalisieren, dass der Dialog abgeschlossen wurde, der Dialog aus dem Stapel entfernt und der übergeordnete Dialog fortgesetzt werden sollte.
Beispiel:
return await dc.endDialog(returnValue);
Weitere Informationen
findDialog(string)
Sucht nach einem Dialogfeld mit einer angegebenen ID.
function findDialog(dialogId: string): Dialog | undefined
Parameter
- dialogId
-
string
ID des dialogfelds, nach dem gesucht werden soll.
Gibt zurück
Dialog | undefined
Das Dialogfeld für die angegebene ID.
Hinweise
Wenn das zu startende Dialogfeld nicht in dem DialogSet gefunden wird, das diesem Dialogkontext zugeordnet ist, versucht es, den Dialog in seinem übergeordneten Dialogkontext zu suchen.
Weitere Informationen
getLocale()
Rufen Sie cultureInfo in DialogContext ab.
function getLocale(): string
Gibt zurück
string
eine Gebietsschemazeichenfolge.
prompt(string, string | Partial<Activity> | PromptOptions)
Hilfsfunktion zur Vereinfachung der Formatierung der Optionen zum Aufrufen eines Eingabeaufforderungsdialogfelds.
function prompt(dialogId: string, promptOrOptions: string | Partial<Activity> | PromptOptions): Promise<DialogTurnResult>
Parameter
- dialogId
-
string
ID des Eingabeaufforderungsdialogfelds zum Starten.
- promptOrOptions
-
string | Partial<Activity> | PromptOptions
Der Text der anfänglichen Aufforderung zum Senden des Benutzers, die aktivität, die als erste Eingabeaufforderung gesendet werden soll, oder das Objekt, mit dem das Eingabeaufforderungsdialogfeld formatiert werden soll.
Gibt zurück
Promise<DialogTurnResult>
Hinweise
Diese Hilfsmethode formatiert das Objekt, das als options
Parameter verwendet werden soll, und ruft dann beginDialog auf, um das angegebene Eingabeaufforderungsdialogfeld zu starten.
return await dc.prompt('confirmPrompt', `Are you sure you'd like to quit?`);
prompt(string, string | Partial<Activity> | PromptOptions, string | Choice[])
Hilfsfunktion zur Vereinfachung der Formatierung der Optionen zum Aufrufen eines Eingabeaufforderungsdialogfelds.
function prompt(dialogId: string, promptOrOptions: string | Partial<Activity> | PromptOptions, choices: string | Choice[]): Promise<DialogTurnResult>
Parameter
- dialogId
-
string
ID des Eingabeaufforderungsdialogfelds zum Starten.
- promptOrOptions
-
string | Partial<Activity> | PromptOptions
Der Text der anfänglichen Aufforderung zum Senden des Benutzers, die aktivität , die als anfängliche Eingabeaufforderung gesendet werden soll, oder das Objekt, mit dem das Eingabeaufforderungsdialogfeld formatiert werden soll.
- choices
-
string | Choice[]
Optional. Array von Optionen, aus denen der Benutzer auswählen kann, zur Verwendung mit einem ChoicePrompt.
Gibt zurück
Promise<DialogTurnResult>
Hinweise
Diese Hilfsmethode formatiert das Objekt, das als options
Parameter verwendet werden soll, und ruft dann beginDialog auf, um das angegebene Eingabeaufforderungsdialogfeld zu starten.
return await dc.prompt('confirmPrompt', `Are you sure you'd like to quit?`);
replaceDialog(string, object)
Beendet den aktiven Dialog und startet an seiner Stelle einen neuen Dialog.
function replaceDialog(dialogId: string, options?: object): Promise<DialogTurnResult>
Parameter
- dialogId
-
string
ID des zu startenden Dialogfelds.
- options
-
object
Optional. Argumente, die beim Start an das neue Dialogfeld übergeben werden sollen.
Gibt zurück
Promise<DialogTurnResult>
eine Zusage, die in das Ergebnis des Dialogwechsels aufgelöst wird.
Hinweise
Dies ist besonders nützlich, um eine Schleife zu erstellen oder an einen anderen Dialog umzuleiten.
Der Status des zurückgegebenen Objekts beschreibt den Status des Dialogstapels nach Abschluss dieser Methode.
Diese Methode ähnelt dem Beenden des aktuellen Dialogs und dem sofortigen Starten des neuen Dialogfelds. Das übergeordnete Dialogfeld wird jedoch weder fortgesetzt noch anderweitig benachrichtigt.
Weitere Informationen
repromptDialog()
Fordert den aktiven Dialog auf, den Benutzer erneut zur Eingabe aufzufordern.
function repromptDialog(): Promise<void>
Gibt zurück
Promise<void>
Hinweise
Dadurch wird die repromptDialog-Methode des aktiven Dialogs aufgerufen.
Beispiel:
await dc.repromptDialog();