Compartir a través de


BotState class

Clase base para los ámbitos de conservación de estado de marcos.

Comentarios

Esta clase leerá y escribirá el estado en un proveedor de almacenamiento proporcionado para cada turno de conversación con un usuario. Las clases derivadas, como ConversationState y UserState, proporcionan un StorageKeyFactory que se usa para determinar la clave usada para conservar un objeto de almacenamiento determinado.

El objeto de estado que se carga se almacenará automáticamente en caché en el objeto de contexto durante la vigencia del turno y solo se escribirá en el almacenamiento si se ha modificado.

Constructores

BotState(Storage, StorageKeyFactory)

Crea una nueva instancia de BotState.

Métodos

clear(TurnContext)

Borra el objeto de estado actual de un turno.

createProperty<T>(string)

Crea un nuevo descriptor de acceso de propiedad para leer y escribir una propiedad individual en el objeto de almacenamiento de estados del bot.

delete(TurnContext)

Elimine el objeto de estado de respaldo del turno actual.

get(TurnContext)

Devuelve un objeto de estado almacenado en caché o undefined si no está almacenado en caché.

load(TurnContext, boolean)

Lee y almacena en caché el objeto de estado de respaldo de un turno.

saveChanges(TurnContext, boolean)

Guarda el objeto de estado almacenado en caché si se ha cambiado.

Detalles del constructor

BotState(Storage, StorageKeyFactory)

Crea una nueva instancia de BotState.

new BotState(storage: Storage, storageKey: StorageKeyFactory)

Parámetros

storage
Storage

Proveedor de almacenamiento en el que se conserva el objeto de estado.

storageKey
StorageKeyFactory

Función a la que se llama cada vez que se debe calcular la clave de almacenamiento de un turno determinado.

Detalles del método

clear(TurnContext)

Borra el objeto de estado actual de un turno.

function clear(context: TurnContext): Promise<void>

Parámetros

context
TurnContext

Contexto para el turno actual de conversación con el usuario.

Devoluciones

Promise<void>

Promesa que representa la operación asincrónica.

Comentarios

El objeto de estado borrado no se conservará hasta que se haya llamado a saveChanges().

await botState.clear(context);
await botState.saveChanges(context);

createProperty<T>(string)

Crea un nuevo descriptor de acceso de propiedad para leer y escribir una propiedad individual en el objeto de almacenamiento de estados del bot.

function createProperty<T>(name: string): StatePropertyAccessor<T>

Parámetros

name

string

Nombre de la propiedad que se va a agregar.

Devoluciones

Descriptor de acceso para la propiedad .

delete(TurnContext)

Elimine el objeto de estado de respaldo del turno actual.

function delete(context: TurnContext): Promise<void>

Parámetros

context
TurnContext

Contexto para el turno actual de conversación con el usuario.

Devoluciones

Promise<void>

Promesa que representa la operación asincrónica.

Comentarios

El objeto de estado se quitará del almacenamiento si existe. Si el objeto de estado se ha leído y almacenado en caché, se borrará la memoria caché.

await botState.delete(context);

get(TurnContext)

Devuelve un objeto de estado almacenado en caché o undefined si no está almacenado en caché.

function get(context: TurnContext): any | undefined

Parámetros

context
TurnContext

Contexto para el turno actual de conversación con el usuario.

Devoluciones

any | undefined

Objeto de estado almacenado en caché o indefinido si no está almacenado en caché.

Comentarios

En este ejemplo se muestra cómo obtener de forma sincrónica un objeto de estado ya cargado y almacenado en caché:

const state = botState.get(context);

load(TurnContext, boolean)

Lee y almacena en caché el objeto de estado de respaldo de un turno.

function load(context: TurnContext, force?: boolean): Promise<any>

Parámetros

context
TurnContext

Contexto para el turno actual de conversación con el usuario.

force

boolean

(Opcional) Si true se omitirá la memoria caché y el estado siempre se leerá directamente desde el almacenamiento. El valor predeterminado es false.

Devoluciones

Promise<any>

Estado almacenado en caché.

Comentarios

Las lecturas posteriores devolverán el objeto almacenado en caché a menos que se pase la marca force, lo que obligará a que el objeto de estado se vuelva a leer.

Este método se llama automáticamente al primer acceso de cualquiera de los descriptores de acceso de propiedad creados.

const state = await botState.load(context);

saveChanges(TurnContext, boolean)

Guarda el objeto de estado almacenado en caché si se ha cambiado.

function saveChanges(context: TurnContext, force?: boolean): Promise<void>

Parámetros

context
TurnContext

Contexto para el turno actual de conversación con el usuario.

force

boolean

(Opcional) si true el estado siempre se escribirá independientemente de su estado de cambio. El valor predeterminado es false.

Devoluciones

Promise<void>

Promesa que representa la operación asincrónica.

Comentarios

Si la marca force se pasa en el objeto de estado almacenado en caché se guardará independientemente de si se ha cambiado o no y si no se ha almacenado en caché ningún objeto, se creará un objeto vacío y, a continuación, se guardará.

await botState.saveChanges(context);