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
Bot |
Cria uma nova instância do BotState. |
Métodos
clear(Turn |
Limpa o objeto de estado atual para uma curva. |
create |
Cria um novo acessador de propriedade para ler e gravar uma propriedade individual no objeto de armazenamento de estados de bot. |
delete(Turn |
Exclua o objeto de estado de backup para a curva atual. |
get(Turn |
Retorna um objeto de estado armazenado em cache ou indefinido se não for armazenado em cache. |
load(Turn |
Lê e armazena em cache o objeto de estado de backup para uma curva. |
save |
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);