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
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 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);