BotState class
框架状态持久化范围的基类。
注解
对于与用户的每次聊天轮次,此类将读取和写入到提供的存储提供程序的状态。 派生类(如 ConversationState
和 UserState
)提供一个 StorageKeyFactory
,用于确定用于持久保存给定存储对象的密钥。
加载的状态对象将在轮次生存期内自动缓存在上下文对象上,并且只有在修改后才会写入存储。
构造函数
Bot |
创建新的 BotState 实例。 |
方法
clear(Turn |
清除轮次的当前状态对象。 |
create |
创建一个新的属性访问器,用于读取单个属性并将其写入机器人状态存储对象。 |
delete(Turn |
删除当前轮次的后备状态对象。 |
get(Turn |
返回缓存状态对象,如果未缓存,则返回 undefined。 |
load(Turn |
读取并缓存轮次的后备状态对象。 |
save |
如果已更改,则保存缓存的状态对象。 |
构造函数详细信息
BotState(Storage, StorageKeyFactory)
创建新的 BotState 实例。
new BotState(storage: Storage, storageKey: StorageKeyFactory)
参数
- storage
- Storage
将状态对象保存到的存储提供程序。
- storageKey
- StorageKeyFactory
每当需要计算给定轮次的存储密钥时调用的函数。
方法详细信息
clear(TurnContext)
清除轮次的当前状态对象。
function clear(context: TurnContext): Promise<void>
参数
- context
- TurnContext
与用户当前轮次对话的上下文。
返回
Promise<void>
表示异步操作的承诺。
注解
在调用 saveChanges () 之前,不会保留清除的状态对象。
await botState.clear(context);
await botState.saveChanges(context);
createProperty<T>(string)
创建一个新的属性访问器,用于读取单个属性并将其写入机器人状态存储对象。
function createProperty<T>(name: string): StatePropertyAccessor<T>
参数
- name
-
string
要添加的属性的名称。
返回
属性的访问器。
delete(TurnContext)
删除当前轮次的后备状态对象。
function delete(context: TurnContext): Promise<void>
参数
- context
- TurnContext
与用户当前轮次对话的上下文。
返回
Promise<void>
表示异步操作的承诺。
注解
状态对象将从存储中删除(如果存在)。 如果状态对象已读取并缓存,则会清除缓存。
await botState.delete(context);
get(TurnContext)
返回缓存状态对象,如果未缓存,则返回 undefined。
function get(context: TurnContext): any | undefined
参数
- context
- TurnContext
与用户当前轮次对话的上下文。
返回
any | undefined
缓存状态对象,如果未缓存,则为 undefined。
注解
此示例演示如何同步获取已加载和缓存的状态对象:
const state = botState.get(context);
load(TurnContext, boolean)
读取并缓存轮次的后备状态对象。
function load(context: TurnContext, force?: boolean): Promise<any>
参数
- context
- TurnContext
与用户当前轮次对话的上下文。
- force
-
boolean
(可选) 如果 true
将绕过缓存,并且始终直接从存储中读取状态。 默认为 false
。
返回
Promise<any>
缓存状态。
注解
后续读取将返回缓存的对象, force
除非传入的标志将强制重新读取状态对象。
此方法在首次访问任何已创建的属性访问器时自动调用。
const state = await botState.load(context);
saveChanges(TurnContext, boolean)
如果已更改,则保存缓存的状态对象。
function saveChanges(context: TurnContext, force?: boolean): Promise<void>
参数
- context
- TurnContext
与用户当前轮次对话的上下文。
- force
-
boolean
(可选) ,如果 true
无论状态如何,都会始终写出状态。 默认为 false
。
返回
Promise<void>
表示异步操作的承诺。
注解
force
如果在缓存状态对象中传递标志,则将保存该标志,而不考虑其是否已更改,如果未缓存任何对象,则将创建一个空对象,然后保存。
await botState.saveChanges(context);