BotState class

Classe base para os escopos de persistência de estado das estruturas.

Comentários

Essa classe lerá e gravará o estado, em um provedor de armazenamento fornecido, para cada turno da conversa com um usuário. Classes derivadas, como ConversationState e UserState, fornecem uma StorageKeyFactory que é usada para determinar a chave usada para persistir um determinado objeto de armazenamento.

O objeto de estado carregado será automaticamente armazenado em cache no objeto de contexto durante o tempo de vida da curva e será gravado apenas no armazenamento se ele tiver sido modificado.

Construtores

BotState(Storage, StorageKeyFactory)

Cria uma nova instância do BotState.

Métodos

clear(TurnContext)

Limpa o objeto de estado atual para uma curva.

createProperty<T>(string)

Cria um novo acessador de propriedade para ler e gravar uma propriedade individual no objeto de armazenamento de estados de bot.

delete(TurnContext)

Exclua o objeto de estado de backup para a curva atual.

get(TurnContext)

Retorna um objeto de estado armazenado em cache ou indefinido se não for armazenado em cache.

load(TurnContext, boolean)

Lê e armazena em cache o objeto de estado de backup para uma curva.

saveChanges(TurnContext, boolean)

Salvará o objeto de estado armazenado em cache se ele tiver sido alterado.

Detalhes do construtor

BotState(Storage, StorageKeyFactory)

Cria uma nova instância do BotState.

new BotState(storage: Storage, storageKey: StorageKeyFactory)

Parâmetros

storage
Storage

Provedor de armazenamento para o qual manter o objeto de estado.

storageKey
StorageKeyFactory

Função chamada sempre que a chave de armazenamento de um determinado turno precisar ser calculada.

Detalhes do método

clear(TurnContext)

Limpa o objeto de estado atual para uma curva.

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

Parâmetros

context
TurnContext

Contexto para a virada atual da conversa com o usuário.

Retornos

Promise<void>

Uma promessa que representa a operação assíncrona.

Comentários

O objeto de estado desmarcado não será mantido até que saveChanges() tenha sido chamado.

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

createProperty<T>(string)

Cria um novo acessador de propriedade para ler e gravar uma propriedade individual no objeto de armazenamento de estados de bot.

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

Parâmetros

name

string

Nome da propriedade a ser adicionada.

Retornos

Um acessador para a propriedade.

delete(TurnContext)

Exclua o objeto de estado de backup para a curva atual.

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

Parâmetros

context
TurnContext

Contexto para a virada atual da conversa com o usuário.

Retornos

Promise<void>

Uma promessa que representa a operação assíncrona.

Comentários

O objeto de estado será removido do armazenamento se ele existir. Se o objeto de estado tiver sido lido e armazenado em cache, o cache será limpo.

await botState.delete(context);

get(TurnContext)

Retorna um objeto de estado armazenado em cache ou indefinido se não for armazenado em cache.

function get(context: TurnContext): any | undefined

Parâmetros

context
TurnContext

Contexto para a virada atual da conversa com o usuário.

Retornos

any | undefined

Um objeto de estado armazenado em cache ou indefinido se não for armazenado em cache.

Comentários

Este exemplo mostra como obter um objeto de estado já carregado e armazenado em cache de forma síncrona:

const state = botState.get(context);

load(TurnContext, boolean)

Lê e armazena em cache o objeto de estado de backup para uma curva.

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

Parâmetros

context
TurnContext

Contexto para a virada atual da conversa com o usuário.

force

boolean

(Opcional) Se true o cache será ignorado e o estado sempre será lido diretamente do armazenamento. O padrão é false.

Retornos

Promise<any>

O estado armazenado em cache.

Comentários

As leituras subsequentes retornarão o objeto armazenado em cache, a menos que o sinalizador force seja passado, o que forçará o objeto de estado a ser lido novamente.

Esse método é chamado automaticamente no primeiro acesso de qualquer um dos acessadores de propriedade criados.

const state = await botState.load(context);

saveChanges(TurnContext, boolean)

Salvará o objeto de estado armazenado em cache se ele tiver sido alterado.

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

Parâmetros

context
TurnContext

Contexto para a virada atual da conversa com o usuário.

force

boolean

(Opcional) se true o estado sempre será gravado, independentemente de seu estado de alteração. O padrão é false.

Retornos

Promise<void>

Uma promessa que representa a operação assíncrona.

Comentários

Se o sinalizador force for passado no objeto de estado armazenado em cache será salvo independentemente de ter sido alterado ou não e se nenhum objeto tiver sido armazenado em cache, um objeto vazio será criado e salvo.

await botState.saveChanges(context);