Поделиться через


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