Compartir a través de


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

ConversationState(Storage, string)

Crea una nueva instancia de ConversationState.

Métodos

getStorageKey(TurnContext)

Devuelve la clave de almacenamiento para el estado de conversación actual.

Métodos heredados

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

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