ConversationState class
Legge e scrive lo stato della conversazione per il bot nell'archiviazione.
- Extends
Commenti
Ogni conversazione che il bot ha con un utente o un gruppo avrà un proprio oggetto di archiviazione isolato che può essere usato per rendere persistenti le informazioni di rilevamento della conversazione tra turni della conversazione. Queste informazioni sullo stato possono essere reimpostate in qualsiasi momento chiamando clear().
const { ConversationState, MemoryStorage } = require('botbuilder');
const conversationState = new ConversationState(new MemoryStorage());
Costruttori
Conversation |
Crea una nuova istanza di ConversationState. |
Metodi
get |
Restituisce la chiave di archiviazione per lo stato della conversazione corrente. |
Metodi ereditati
clear(Turn |
Cancella l'oggetto di stato corrente per un turno. |
create |
Crea una nuova funzione di accesso alle proprietà per la lettura e la scrittura di una singola proprietà nell'oggetto di archiviazione degli stati del bot. |
delete(Turn |
Eliminare l'oggetto stato di backup per il turno corrente. |
get(Turn |
Restituisce un oggetto di stato memorizzato nella cache o non definito se non memorizzato nella cache. |
load(Turn |
Legge e memorizza nella cache l'oggetto stato di backup per un turno. |
save |
Salva l'oggetto stato memorizzato nella cache se è stato modificato. |
Dettagli costruttore
ConversationState(Storage, string)
Crea una nuova istanza di ConversationState.
new ConversationState(storage: Storage, namespace?: string)
Parametri
- storage
- Storage
Provider di archiviazione per rendere persistente lo stato della conversazione.
- namespace
-
string
(Facoltativo) spazio dei nomi da aggiungere alle chiavi di archiviazione. Il valore predefinito è una stringa vuota.
Dettagli metodo
getStorageKey(TurnContext)
Restituisce la chiave di archiviazione per lo stato della conversazione corrente.
function getStorageKey(context: TurnContext): string | undefined
Parametri
- context
- TurnContext
Contesto per il turno corrente della conversazione con l'utente.
Restituisce
string | undefined
Chiave di archiviazione per lo stato della conversazione corrente.
Dettagli dei metodi ereditati
clear(TurnContext)
Cancella l'oggetto di stato corrente per un turno.
function clear(context: TurnContext): Promise<void>
Parametri
- context
- TurnContext
Contesto per il turno corrente della conversazione con l'utente.
Restituisce
Promise<void>
Promessa che rappresenta l'operazione asincrona.
Commenti
L'oggetto stato cancellato non verrà salvato in modo permanente finché non viene chiamato saveChanges().
await botState.clear(context);
await botState.saveChanges(context);
ereditato daBotState.clear
createProperty<T>(string)
Crea una nuova funzione di accesso alle proprietà per la lettura e la scrittura di una singola proprietà nell'oggetto di archiviazione degli stati del bot.
function createProperty<T>(name: string): StatePropertyAccessor<T>
Parametri
- name
-
string
Nome della proprietà da aggiungere.
Restituisce
Funzione di accesso per la proprietà .
ereditato daBotState.createProperty
delete(TurnContext)
Eliminare l'oggetto stato di backup per il turno corrente.
function delete(context: TurnContext): Promise<void>
Parametri
- context
- TurnContext
Contesto per il turno corrente della conversazione con l'utente.
Restituisce
Promise<void>
Promessa che rappresenta l'operazione asincrona.
Commenti
L'oggetto stato verrà rimosso dalla risorsa di archiviazione, se presente. Se l'oggetto di stato è stato letto e memorizzato nella cache, la cache verrà cancellata.
await botState.delete(context);
ereditato daBotState.delete
get(TurnContext)
Restituisce un oggetto di stato memorizzato nella cache o non definito se non memorizzato nella cache.
function get(context: TurnContext): any | undefined
Parametri
- context
- TurnContext
Contesto per il turno corrente della conversazione con l'utente.
Restituisce
any | undefined
Oggetto di stato memorizzato nella cache o non definito se non memorizzato nella cache.
Commenti
Questo esempio mostra come ottenere in modo sincrono un oggetto stato già caricato e memorizzato nella cache:
const state = botState.get(context);
ereditato daBotState.get
load(TurnContext, boolean)
Legge e memorizza nella cache l'oggetto stato di backup per un turno.
function load(context: TurnContext, force?: boolean): Promise<any>
Parametri
- context
- TurnContext
Contesto per il turno corrente della conversazione con l'utente.
- force
-
boolean
(Facoltativo) Se true
la cache verrà ignorata e lo stato verrà sempre letto direttamente dall'archiviazione. Il valore predefinito è false
.
Restituisce
Promise<any>
Stato memorizzato nella cache.
Commenti
Le letture successive restituiranno l'oggetto memorizzato nella cache, a meno che non venga passato il flag force
che forza la ri lettura dell'oggetto di stato.
Questo metodo viene chiamato automaticamente al primo accesso di una delle funzioni di accesso alle proprietà create.
const state = await botState.load(context);
ereditato daBotState.load
saveChanges(TurnContext, boolean)
Salva l'oggetto stato memorizzato nella cache se è stato modificato.
function saveChanges(context: TurnContext, force?: boolean): Promise<void>
Parametri
- context
- TurnContext
Contesto per il turno corrente della conversazione con l'utente.
- force
-
boolean
(Facoltativo) se true
lo stato verrà sempre scritto indipendentemente dal relativo stato di modifica. Il valore predefinito è false
.
Restituisce
Promise<void>
Promessa che rappresenta l'operazione asincrona.
Commenti
Se il flag force
viene passato nell'oggetto stato memorizzato nella cache verrà salvato indipendentemente dal fatto che sia stato modificato o meno e se non è stato memorizzato nella cache alcun oggetto, verrà creato e salvato un oggetto vuoto.
await botState.saveChanges(context);
Ereditato daBotState.saveChanges