ConversationState class
Считывает и записывает состояние беседы для бота в хранилище.
- Extends
Комментарии
Каждый диалог бота с пользователем или группой будет иметь собственный изолированный объект хранилища, который можно использовать для сохранения сведений об отслеживании беседы между поворотами беседы. Эти сведения о состоянии можно сбросить в любой момент, вызвав clear().
const { ConversationState, MemoryStorage } = require('botbuilder');
const conversationState = new ConversationState(new MemoryStorage());
Конструкторы
Conversation |
Создает новый экземпляр ConversationState. |
Методы
get |
Возвращает ключ хранилища для текущего состояния беседы. |
Наследуемые методы
clear(Turn |
Очищает текущий объект состояния для поворота. |
create |
Создает новый метод доступа к свойствам для чтения и записи отдельного свойства в объект хранилища состояний бота. |
delete(Turn |
Удалите объект состояния резервного копирования для текущего поворота. |
get(Turn |
Возвращает кэшированный объект состояния или не определен, если не кэширован. |
load(Turn |
Считывает и кэширует резервный объект состояния для поворота. |
save |
Сохраняет кэшированный объект состояния, если он был изменен. |
Сведения о конструкторе
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