BotState class
架構狀態保存範圍的基類。
備註
此類別會針對與使用者交談的每個回合,讀取和寫入狀態給提供的儲存體提供者。 衍生類別,例如 ConversationState
和 UserState
,提供 StorageKeyFactory
用來判斷用來保存指定儲存物件之索引鍵的 。
載入的狀態物件會在回合的存留期自動快取在內容物件上,而且只有在已修改時才會寫入儲存體。
建構函式
Bot |
建立新的 BotState 實例。 |
方法
clear(Turn |
清除回合的目前狀態物件。 |
create |
建立新的屬性存取子,以讀取和寫入個別屬性至 Bot 狀態儲存物件。 |
delete(Turn |
刪除目前回合的備份狀態物件。 |
get(Turn |
傳回快取的狀態物件,如果未快取,則傳回未定義。 |
load(Turn |
讀取並快取回合的備份狀態物件。 |
save |
如果已變更,則會儲存快取的狀態物件。 |
建構函式詳細資料
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);