BotState class

Базовый класс для областей сохранения состояния платформ.

Комментарии

Этот класс будет считывать и записывать состояние в предоставленном поставщике хранилища для каждого диалога с пользователем. Производные классы, такие как ConversationState и UserState, предоставляют объект , StorageKeyFactory который используется для определения ключа, используемого для сохранения данного объекта хранилища.

Загруженный объект состояния автоматически кэшируется в объекте контекста в течение времени существования шага и записывается в хранилище только в том случае, если он был изменен.

Конструкторы

BotState(Storage, StorageKeyFactory)

Создает новый экземпляр BotState.

Методы

clear(TurnContext)

Очищает объект текущего состояния для поворота.

createProperty<T>(string)

Создает новый метод доступа к свойству для чтения и записи отдельного свойства в объект хранилища состояний бота.

delete(TurnContext)

Удалите объект резервного состояния для текущего поворота.

get(TurnContext)

Возвращает кэшированный объект состояния или неопределенный, если он не кэширован.

load(TurnContext, boolean)

Считывает и кэширует объект резервного состояния для поворота.

saveChanges(TurnContext, boolean)

Сохраняет кэшированный объект состояния, если он был изменен.

Сведения о конструкторе

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)

Возвращает кэшированный объект состояния или неопределенный, если он не кэширован.

function get(context: TurnContext): any | undefined

Параметры

context
TurnContext

Контекст для текущего диалога с пользователем.

Возвращаемое значение

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