ConversationState class
Lee y escribe el estado de conversación del bot en el almacenamiento.
- Extends
Comentarios
Cada conversación que el bot tiene con un usuario o grupo tendrá su propio objeto de almacenamiento aislado que se puede usar para conservar la información de seguimiento de la conversación entre turnos de la conversación. Esta información de estado se puede restablecer en cualquier momento llamando a clear().
const { ConversationState, MemoryStorage } = require('botbuilder');
const conversationState = new ConversationState(new MemoryStorage());
Constructores
Conversation |
Crea una nueva instancia de ConversationState. |
Métodos
get |
Devuelve la clave de almacenamiento para el estado de conversación actual. |
Métodos heredados
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
ConversationState(Storage, string)
Crea una nueva instancia de ConversationState.
new ConversationState(storage: Storage, namespace?: string)
Parámetros
- storage
- Storage
Proveedor de almacenamiento para conservar el estado de la conversación.
- namespace
-
string
(Opcional) espacio de nombres para anexar a las claves de almacenamiento. El valor predeterminado es una cadena vacía.
Detalles del método
getStorageKey(TurnContext)
Devuelve la clave de almacenamiento para el estado de conversación actual.
function getStorageKey(context: TurnContext): string | undefined
Parámetros
- context
- TurnContext
Contexto para el turno actual de conversación con el usuario.
Devoluciones
string | undefined
Clave de almacenamiento para el estado de conversación actual.
Detalles de los métodos heredados
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);
heredado deBotState.clear
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 .
Heredado deBotState.createProperty
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);
heredado deBotState.delete
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);
heredado deBotState.get
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. Su 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);
heredado debotState.load
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. Su 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);
Heredado deBotState.saveChanges