BotState class

フレームワークの状態の永続化スコープの基本クラス。

注釈

このクラスは、ユーザーとの会話のターンごとに、指定されたストレージ プロバイダーに対して状態の読み取りと書き込みを行います。 や UserStateなどのConversationState派生クラスは、 を提供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>

非同期操作を表す promise。

注釈

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>

非同期操作を表す promise。

注釈

状態オブジェクトが存在する場合、ストレージから削除されます。 状態オブジェクトが読み取られ、キャッシュされている場合、キャッシュはクリアされます。

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>

非同期操作を表す promise。

注釈

フラグが force キャッシュ状態オブジェクトに渡されると、そのフラグが変更されているかどうかに関係なく保存され、オブジェクトがキャッシュされていない場合は、空のオブジェクトが作成されて保存されます。

await botState.saveChanges(context);