BotState class
Classe di base per gli ambiti di persistenza dello stato dei framework.
Commenti
Questa classe leggerà e scriverà lo stato, in un provider di archiviazione fornito, per ogni turno di conversazione con un utente. Le classi derivate, ad esempio ConversationState
e UserState
, forniscono un StorageKeyFactory
usato per determinare la chiave usata per rendere persistente un determinato oggetto di archiviazione.
L'oggetto di stato caricato verrà automaticamente memorizzato nella cache nell'oggetto contesto per la durata del turno e verrà scritto nella risorsa di archiviazione solo se è stato modificato.
Costruttori
Bot |
Crea una nuova istanza di BotState. |
Metodi
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
BotState(Storage, StorageKeyFactory)
Crea una nuova istanza di BotState.
new BotState(storage: Storage, storageKey: StorageKeyFactory)
Parametri
- storage
- Storage
Provider di archiviazione in cui rendere persistente l'oggetto stato.
- storageKey
- StorageKeyFactory
Funzione chiamata ogni volta che è necessario calcolare la chiave di archiviazione per un determinato turno.
Dettagli metodo
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);
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à .
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);
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);
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);
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);