Partager via


BotState class

Classe de base pour les étendues de persistance de l’état des frameworks.

Remarques

Cette classe lit et écrit l’état, dans un fournisseur de stockage fourni, pour chaque tour de conversation avec un utilisateur. Les classes dérivées, telles que ConversationState et UserState, fournissent un StorageKeyFactory qui est utilisé pour déterminer la clé utilisée pour conserver un objet de stockage donné.

L’objet d’état chargé sera automatiquement mis en cache sur l’objet de contexte pendant la durée de vie du tour et ne sera écrit dans le stockage que s’il a été modifié.

Constructeurs

BotState(Storage, StorageKeyFactory)

Crée une instance BotState.

Méthodes

clear(TurnContext)

Efface l’objet d’état actuel pour un tour.

createProperty<T>(string)

Crée un accesseur de propriété pour la lecture et l’écriture d’une propriété individuelle dans l’objet de stockage des états du bot.

delete(TurnContext)

Supprimez l’objet d’état de stockage pour le tour actuel.

get(TurnContext)

Retourne un objet d’état mis en cache ou non défini s’il n’est pas mis en cache.

load(TurnContext, boolean)

Lit et met en cache l’objet d’état de stockage pour un tour.

saveChanges(TurnContext, boolean)

Enregistre l’objet d’état mis en cache s’il a été modifié.

Détails du constructeur

BotState(Storage, StorageKeyFactory)

Crée une instance BotState.

new BotState(storage: Storage, storageKey: StorageKeyFactory)

Paramètres

storage
Storage

Fournisseur de stockage dans lequel conserver l’objet d’état.

storageKey
StorageKeyFactory

Fonction appelée chaque fois que la clé de stockage pour un tour donné doit être calculée.

Détails de la méthode

clear(TurnContext)

Efface l’objet d’état actuel pour un tour.

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

Paramètres

context
TurnContext

Contexte de la tour actuelle de la conversation avec l’utilisateur.

Retours

Promise<void>

Promesse représentant l’opération asynchrone.

Remarques

L’objet d’état effacé n’est pas conservé tant que saveChanges() n’a pas été appelé.

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

createProperty<T>(string)

Crée un accesseur de propriété pour la lecture et l’écriture d’une propriété individuelle dans l’objet de stockage des états du bot.

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

Paramètres

name

string

Nom de la propriété à ajouter.

Retours

Accesseur pour la propriété .

delete(TurnContext)

Supprimez l’objet d’état de stockage pour le tour actuel.

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

Paramètres

context
TurnContext

Contexte de la tour actuelle de la conversation avec l’utilisateur.

Retours

Promise<void>

Promesse représentant l’opération asynchrone.

Remarques

L’objet d’état est supprimé du stockage s’il existe. Si l’objet d’état a été lu et mis en cache, le cache est effacé.

await botState.delete(context);

get(TurnContext)

Retourne un objet d’état mis en cache ou non défini s’il n’est pas mis en cache.

function get(context: TurnContext): any | undefined

Paramètres

context
TurnContext

Contexte de la tour actuelle de la conversation avec l’utilisateur.

Retours

any | undefined

Objet d’état mis en cache ou non défini s’il n’est pas mis en cache.

Remarques

Cet exemple montre comment obtenir de manière synchrone un objet d’état déjà chargé et mis en cache :

const state = botState.get(context);

load(TurnContext, boolean)

Lit et met en cache l’objet d’état de stockage pour un tour.

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

Paramètres

context
TurnContext

Contexte de la tour actuelle de la conversation avec l’utilisateur.

force

boolean

(Facultatif) Si true le cache est contourné et que l’état est toujours lu directement à partir du stockage. La valeur par défaut est false.

Retours

Promise<any>

État mis en cache.

Remarques

Les lectures suivantes retournent l’objet mis en cache, sauf si l’indicateur force est passé, ce qui forcera la re read de l’objet d’état.

Cette méthode est automatiquement appelée lors du premier accès de l’un des accesseurs de propriété créés.

const state = await botState.load(context);

saveChanges(TurnContext, boolean)

Enregistre l’objet d’état mis en cache s’il a été modifié.

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

Paramètres

context
TurnContext

Contexte de la tour actuelle de la conversation avec l’utilisateur.

force

boolean

(Facultatif) si true l’état est toujours écrit, quel que soit son état de modification. La valeur par défaut est false.

Retours

Promise<void>

Promesse représentant l’opération asynchrone.

Remarques

Si l’indicateur force est passé dans l’objet d’état mis en cache est enregistré, qu’il ait été modifié ou non, et si aucun objet n’a été mis en cache, un objet vide est créé, puis enregistré.

await botState.saveChanges(context);