Compartir a través de


UserState class

Lee y escribe el estado de usuario del bot en el almacenamiento.

Extends

Comentarios

Cada usuario con el que se comunica el bot tendrá su propio objeto de almacenamiento aislado que se puede usar para conservar información sobre el usuario en toda la conversación que tenga con ese usuario.

const { UserState, MemoryStorage } = require('botbuilder');

const userState = new UserState(new MemoryStorage());

Constructores

UserState(Storage, string)

Crea una nueva instancia de UserState.

Métodos

getStorageKey(TurnContext)

Devuelve la clave de almacenamiento para el estado de usuario 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 se almacena 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

UserState(Storage, string)

Crea una nueva instancia de UserState.

new UserState(storage: Storage, namespace?: string)

Parámetros

storage
Storage

Proveedor de almacenamiento al que se va a conservar el estado de usuario.

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 usuario 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 usuario 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 se almacena 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 sin definir si no se almacena 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. Tiene como valor predeterminado 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 force marca, 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. Tiene como valor predeterminado false.

Devoluciones

Promise<void>

Promesa que representa la operación asincrónica.

Comentarios

Si la force marca 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