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
Bot |
Crea una nueva instancia de BotState. |
Métodos
clear(Turn |
Borra el objeto de estado actual de un turno. |
create |
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(Turn |
Elimine el objeto de estado de respaldo del turno actual. |
get(Turn |
Devuelve un objeto de estado almacenado en caché o undefined si no está almacenado en caché. |
load(Turn |
Lee y almacena en caché el objeto de estado de respaldo de un turno. |
save |
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);