UserState class

读取机器人的用户状态并将其写入存储。

Extends

注解

机器人与通信的每个用户都有其自己的独立存储对象,可用于在与该用户进行的所有对话中保存有关该用户的信息。

const { UserState, MemoryStorage } = require('botbuilder');

const userState = new UserState(new MemoryStorage());

构造函数

UserState(Storage, string)

创建新的 UserState 实例。

方法

getStorageKey(TurnContext)

返回当前用户状态的存储密钥。

继承的方法

clear(TurnContext)

清除轮次的当前状态对象。

createProperty<T>(string)

创建一个新的属性访问器,用于读取单个属性并将其写入机器人状态存储对象。

delete(TurnContext)

删除当前轮次的后备状态对象。

get(TurnContext)

返回缓存状态对象,如果未缓存,则返回未定义状态对象。

load(TurnContext, boolean)

读取并缓存轮次的后备状态对象。

saveChanges(TurnContext, boolean)

保存缓存的状态对象(如果已更改)。

构造函数详细信息

UserState(Storage, string)

创建新的 UserState 实例。

new UserState(storage: Storage, namespace?: string)

参数

storage
Storage

将用户状态保存到的存储提供程序。

namespace

string

(追加到存储密钥的可选) 命名空间。 默认为空字符串。

方法详细信息

getStorageKey(TurnContext)

返回当前用户状态的存储密钥。

function getStorageKey(context: TurnContext): string | undefined

参数

context
TurnContext

与用户当前轮次对话的上下文。

返回

string | undefined

当前用户状态的存储密钥。

继承的方法详细信息

clear(TurnContext)

清除轮次的当前状态对象。

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

参数

context
TurnContext

与用户当前轮次对话的上下文。

返回

Promise<void>

表示异步操作的承诺。

注解

在调用 saveChanges () 之前,不会保留清除的状态对象。

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

继承自BotState.clear

createProperty<T>(string)

创建一个新的属性访问器,用于读取单个属性并将其写入机器人状态存储对象。

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

参数

name

string

要添加的属性的名称。

返回

属性的访问器。

继承自BotState.createProperty

delete(TurnContext)

删除当前轮次的后备状态对象。

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

参数

context
TurnContext

与用户当前轮次对话的上下文。

返回

Promise<void>

表示异步操作的承诺。

注解

状态对象将从存储中删除(如果存在)。 如果状态对象已读取并缓存,则会清除缓存。

await botState.delete(context);

继承自BotState.delete

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

继承自BotState.load

saveChanges(TurnContext, boolean)

保存缓存的状态对象(如果已更改)。

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

参数

context
TurnContext

与用户当前轮次对话的上下文。

force

boolean

(可选) ,如果 true 无论其更改状态如何,都会始终写出状态。 默认为 false

返回

Promise<void>

表示异步操作的承诺。

注解

force如果在缓存状态对象中传递标志,将保存该标志,而不考虑它是否已更改,如果未缓存任何对象,则将创建一个空对象,然后保存。

await botState.saveChanges(context);

继承自BotState.saveChanges