BotState class
Classe de base pour les étendues de persistance d’é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, comme ConversationState et UserState, fournissent un StorageKeyFactory utilisé pour déterminer la clé utilisée pour conserver un objet de stockage donné.
L’objet d’état chargé est automatiquement mis en cache sur l’objet de contexte pendant la durée de vie du tour et est écrit uniquement dans le stockage s’il a été modifié.
Constructeurs
| Bot |
Crée une instance BotState. |
Méthodes
| clear(Turn |
Efface l’objet d’état actuel pour un tour. |
| create |
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(Turn |
Supprimez l’objet d’état de stockage pour le tour actuel. |
| get(Turn |
Retourne un objet d’état mis en cache ou non défini s’il n’est pas mis en cache. |
| load(Turn |
Lit et met en cache l’objet d’état de stockage pour un tour. |
| save |
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 vers lequel conserver l’objet d’état.
- storageKey
- StorageKeyFactory
La fonction appelée chaque fois que la clé de stockage d’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 pour le tour de conversation actuel 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() a é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 pour le tour de conversation actuel 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 pour le tour de conversation actuel 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 façon 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 pour le tour de conversation actuel 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 réécriture de l’objet d’état.
Cette méthode est automatiquement appelée sur le 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 pour le tour de conversation actuel 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 de force est passé dans l’objet d’état mis en cache est enregistré, indépendamment de sa modification ou non et si aucun objet n’a été mis en cache, un objet vide est créé, puis enregistré.
await botState.saveChanges(context);