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

BotState(Storage, StorageKeyFactory)

Crea una nuova istanza di BotState.

Metodi

clear(TurnContext)

Cancella l'oggetto di stato corrente per un turno.

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.

delete(TurnContext)

Eliminare l'oggetto stato di backup per il turno corrente.

get(TurnContext)

Restituisce un oggetto di stato memorizzato nella cache o non definito se non memorizzato nella cache.

load(TurnContext, boolean)

Legge e memorizza nella cache l'oggetto stato di backup per un turno.

saveChanges(TurnContext, boolean)

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);