共用方式為


BotState class

架構狀態保存範圍的基類。

備註

此類別會針對與使用者交談的每個回合,讀取和寫入狀態給提供的儲存體提供者。 衍生類別,例如 ConversationStateUserState ,提供 StorageKeyFactory 用來判斷用來保存指定儲存物件之索引鍵的 。

載入的狀態物件會在回合的存留期自動快取在內容物件上,而且只有在已修改時才會寫入儲存體。

建構函式

BotState(Storage, StorageKeyFactory)

建立新的 BotState 實例。

方法

clear(TurnContext)

清除回合的目前狀態物件。

createProperty<T>(string)

建立新的屬性存取子,以讀取和寫入個別屬性至 Bot 狀態儲存物件。

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)

建立新的屬性存取子,以讀取和寫入個別屬性至 Bot 狀態儲存物件。

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