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


ConversationState class

Считывает и записывает состояние беседы для бота в хранилище.

Extends

Комментарии

Каждый диалог бота с пользователем или группой будет иметь собственный изолированный объект хранилища, который можно использовать для сохранения сведений об отслеживании беседы между поворотами беседы. Эти сведения о состоянии можно сбросить в любой момент, вызвав clear().

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

const conversationState = new ConversationState(new MemoryStorage());

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

ConversationState(Storage, string)

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

Методы

getStorageKey(TurnContext)

Возвращает ключ хранилища для текущего состояния беседы.

Наследуемые методы

clear(TurnContext)

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

createProperty<T>(string)

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

delete(TurnContext)

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

get(TurnContext)

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

load(TurnContext, boolean)

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

saveChanges(TurnContext, boolean)

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

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

ConversationState(Storage, string)

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

new ConversationState(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