PrivateConversationState class
读取和写入机器人到存储的 PrivateConversation 状态。
- 扩展
注解
机器人与用户或组拥有的每个 PrivateConversation 都将有自己的独立存储对象,该对象可用于在 PrivateConversation 轮次之间保留 PrivateConversation 跟踪信息。 可以通过调用 clear()随时重置此状态信息。
const { PrivateConversationState, MemoryStorage } = require('botbuilder');
const PrivateConversationState = new PrivateConversationState(new MemoryStorage());
构造函数
Private |
创建新的 PrivateConversationState 实例。 |
方法
get |
返回当前 PrivateConversation 状态的存储密钥。 |
继承的方法
clear(Turn |
清除轮次的当前状态对象。 |
create |
创建一个新的属性访问器,用于读取和写入机器人状态存储对象的各个属性。 |
delete(Turn |
删除当前轮次的后盾状态对象。 |
get(Turn |
返回缓存的状态对象,如果未缓存,则返回未定义。 |
load(Turn |
读取并缓存轮次支持状态对象。 |
save |
保存缓存的状态对象(如果已更改)。 |
构造函数详细信息
PrivateConversationState(Storage, string)
创建新的 PrivateConversationState 实例。
new PrivateConversationState(storage: Storage, namespace?: string)
参数
- storage
- Storage
存储提供程序,用于将 PrivateConversation 状态保存到该状态。
- namespace
-
string
(可选)要追加到存储密钥的命名空间。 默认为空字符串。
方法详细信息
getStorageKey(TurnContext)
返回当前 PrivateConversation 状态的存储密钥。
function getStorageKey(context: TurnContext): string | undefined
参数
- context
- TurnContext
与用户当前轮次 PrivateConversation 的上下文。
返回
string | undefined
当前 PrivateConversation 状态的存储密钥。
继承的方法详细信息
clear(TurnContext)
清除轮次的当前状态对象。
function clear(context: TurnContext): Promise<void>
参数
- context
- TurnContext
与用户的当前会话轮次的上下文。
返回
Promise<void>
表示异步操作的 promise。
注解
在调用 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>
表示异步操作的 promise。
注解
如果状态对象存在,将从存储中删除。 如果状态对象已读取并缓存,则会清除缓存。
await botState.delete(context);
get(TurnContext)
返回缓存的状态对象,如果未缓存,则返回未定义。
function get(context: TurnContext): any | undefined
参数
- context
- TurnContext
与用户的当前会话轮次的上下文。
返回
any | undefined
缓存状态对象或未定义(如果未缓存)。
注解
此示例演示如何同步获取已加载和缓存的状态对象:
const state = botState.get(context);
继承自BotState.get
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>
表示异步操作的 promise。
注解
如果在缓存状态对象中传递了 force
标志,无论其是否已更改,以及是否缓存了对象,都将创建一个空对象,然后保存。
await botState.saveChanges(context);