ComponentDialog class
다른 자식 대화 상자가 포함된 대화 상자의 기본 클래스입니다.
- Extends
설명
구성 요소 대화 상자를 사용하면 봇의 논리를 다른 ComponentDialog 또는 DialogSet대화 상자로 추가할 수 있는 구성 요소로 분리할 수 있습니다. 구성 요소는 노드 패키지의 일부로 내보내고 다른 봇 내에서 사용할 수도 있습니다.
새 구성 요소를 정의하려면 ComponentDialog에서 클래스를 파생시키고 클래스 생성자 내에 자식 대화 상자를 추가합니다.
const { ComponentDialog, WaterfallDialog, TextPrompt, NumberPrompt } = require('botbuilder-dialogs');
class FillProfileDialog extends ComponentDialog {
constructor(dialogId) {
super(dialogId);
// Add control flow dialogs
this.addDialog(new WaterfallDialog('start', [
async (step) => {
// Ask user their name
return await step.prompt('namePrompt', `What's your name?`);
},
async (step) => {
// Remember the users answer
step.values['name'] = step.result;
// Ask user their age.
return await step.prompt('agePrompt', `Hi ${step.values['name']}. How old are you?`);
},
async (step) => {
// Remember the users answer
step.values['age'] = step.result;
// End the component and return the completed profile.
return await step.endDialog(step.values);
}
]));
// Add prompts
this.addDialog(new TextPrompt('namePrompt'));
this.addDialog(new NumberPrompt('agePrompt'))
}
}
module.exports.FillProfileDialog = FillProfileDialog;
그런 다음 구성 요소의 새 인스턴스를 다른 DialogSet 추가하거나 다음을 ComponentDialog수 있습니다.
const dialogs = new DialogSet(dialogState);
dialogs.add(new FillProfileDialog('fillProfile'));
생성자
| Component |
Dialog 클래스의 새 인스턴스를 만듭니다. |
속성
| id | 대화 상자의 고유 ID입니다. 대화 상자의 고유 ID를 설정합니다. |
| telemetry |
원격 분석 클라이언트를 설정하고 모든 자식 대화 상자에도 적용합니다. 구성 요소에 추가된 이후 대화 상자도 이 클라이언트를 상속합니다. 현재 원격 분석 클라이언트를 가져옵니다. |
상속된 속성
| dialogs | 컨테이너 대화 상자 집합입니다. |
| End |
기본 턴 종료 결과를 가져옵니다. |
메서드
| add |
|
| begin |
대화 상자가 시작되고 부모의 대화 상자 스택으로 푸시될 때 호출됩니다. 기본적으로 InitialDialogId에 정의된 대로 구성 요소 대화 상자의 Dialog.BeginDialogAsync(DialogContext, object, CancellationToken) 메서드를 호출합니다. 인터럽트 논리를 구현하려면 파생 클래스에서 이 메서드를 재정의합니다. |
| continue |
대화 상자가 계속되면 호출됩니다. 여기서 대화는 활성 대화이고 사용자는 새 활동회신합니다. 이 메서드가 재정의되지 않으면 사용자가 응답할 때 대화 상자가 자동으로 종료됩니다. |
| create |
내부 대화 컨텍스트를 만듭니다. |
| end |
대화 종료되면 호출됩니다. |
| reprompt |
대화 상자가 사용자에게 입력하라는 메시지를 다시 표시해야 할 때 호출됩니다. |
| resume |
부모 대화 스택의 자식 대화 상자가 이 순서를 완료하고 컨트롤을 이 대화 상자 구성 요소로 반환할 때 호출됩니다. |
상속된 메서드
| configure(Record<string, unknown>) | 개체를 구성하기 위한 Fluent 메서드입니다. |
| find |
이전에 컨테이너에 추가된 자식 대화 상자를 찾습니다. |
| get |
|
| get |
다시 배포할 때 봇 변경 내용을 검색하는 데 사용되는 인코딩된 문자열입니다. |
| on |
현재 대화 상자 또는 현재 대화 상자가 시작된 대화 상자에서 |
생성자 세부 정보
ComponentDialog(string)
Dialog 클래스의 새 인스턴스를 만듭니다.
new ComponentDialog(dialogId?: string)
매개 변수
- dialogId
-
string
선택적. 대화 상자의 고유 ID입니다.
속성 세부 정보
id
대화 상자의 고유 ID입니다. 대화 상자의 고유 ID를 설정합니다.
string id
속성 값
string
대화 상자의 ID입니다.
설명
지정하지 않으면 자동으로 생성됩니다.
telemetryClient
원격 분석 클라이언트를 설정하고 모든 자식 대화 상자에도 적용합니다. 구성 요소에 추가된 이후 대화 상자도 이 클라이언트를 상속합니다. 현재 원격 분석 클라이언트를 가져옵니다.
BotTelemetryClient telemetryClient
속성 값
BotTelemetryClient
상속된 속성 세부 정보
dialogs
EndOfTurn
기본 턴 종료 결과를 가져옵니다.
static EndOfTurn: DialogTurnResult
속성 값
설명
이 결과는 대화 상자(또는 대화 상자 내의 논리적 단계)가 현재 턴에 대한 처리를 완료했으며 여전히 활성 상태이며 더 많은 입력을 기다리고 있음을 나타냅니다.
메서드 세부 정보
addDialog(Dialog)
구성 요소 내부 DialogSet자식 대화 또는 프롬프트를 추가합니다.
function addDialog(dialog: Dialog): this
매개 변수
반환
this
작업이 완료된 후 ComponentDialog.
설명
구성 요소에 추가된 첫 번째 자식의 Dialog.id initialDialogId 속성에 할당됩니다.
beginDialog(DialogContext, O)
대화 상자가 시작되고 부모의 대화 상자 스택으로 푸시될 때 호출됩니다. 기본적으로 InitialDialogId에 정의된 대로 구성 요소 대화 상자의 Dialog.BeginDialogAsync(DialogContext, object, CancellationToken) 메서드를 호출합니다. 인터럽트 논리를 구현하려면 파생 클래스에서 이 메서드를 재정의합니다.
function beginDialog(outerDC: DialogContext, options?: O): Promise<DialogTurnResult>
매개 변수
- outerDC
- DialogContext
현재 대화 전환에 대한 부모 DialogContext.
- options
-
O
대화 상자에 전달할 선택적 초기 정보입니다.
반환
Promise<DialogTurnResult>
비동기 작업을 나타내는 Promise입니다.
설명
작업이 성공하면 결과는 대화 상자에서 턴이 처리된 후에도 대화 상자가 여전히 활성 상태인지 여부를 나타냅니다.
continueDialog(DialogContext)
대화 상자가 계속되면 호출됩니다. 여기서 대화는 활성 대화이고 사용자는 새 활동회신합니다. 이 메서드가 재정의되지 않으면 사용자가 응답할 때 대화 상자가 자동으로 종료됩니다.
function continueDialog(outerDC: DialogContext): Promise<DialogTurnResult>
매개 변수
- outerDC
- DialogContext
현재 대화 전환에 대한 부모 DialogContext.
반환
Promise<DialogTurnResult>
비동기 작업을 나타내는 Promise입니다.
설명
작업이 성공하면 결과는 대화 상자에서 턴이 처리된 후에도 대화 상자가 여전히 활성 상태인지 여부를 나타냅니다. 결과에는 반환 값도 포함될 수 있습니다.
createChildContext(DialogContext)
내부 대화 컨텍스트를 만듭니다.
function createChildContext(outerDC: DialogContext): DialogContext
매개 변수
- outerDC
- DialogContext
외부 대화 상자 컨텍스트
반환
만든 대화 상자 컨텍스트입니다.
endDialog(TurnContext, DialogInstance, DialogReason)
대화 종료되면 호출됩니다.
function endDialog(context: TurnContext, instance: DialogInstance, reason: DialogReason): Promise<void>
매개 변수
- context
-
TurnContext
이 턴에 대한 TurnContext 개체입니다.
- instance
- DialogInstance
이 구성 요소의 인스턴스와 연결된 상태 정보 대화 상자는 부모 대화 스택에.
- reason
- DialogReason
대화 종료된 이유입니다.
반환
Promise<void>
비동기 작업을 나타내는 Promise입니다.
설명
부모 대화 상자의 컨텍스트에서 이 메서드가 호출되면 구성 요소 Dialog 종료하기 전에 내부 대화 스택의 모든 대화 상자가 취소됩니다.
repromptDialog(TurnContext, DialogInstance)
대화 상자가 사용자에게 입력하라는 메시지를 다시 표시해야 할 때 호출됩니다.
function repromptDialog(context: TurnContext, instance: DialogInstance): Promise<void>
매개 변수
- context
-
TurnContext
이 턴에 대한 TurnContext 개체입니다.
- instance
- DialogInstance
이 대화 상자의 상태 정보입니다.
반환
Promise<void>
비동기 작업을 나타내는 Promise입니다.
resumeDialog(DialogContext, DialogReason, any)
부모 대화 스택의 자식 대화 상자가 이 순서를 완료하고 컨트롤을 이 대화 상자 구성 요소로 반환할 때 호출됩니다.
function resumeDialog(outerDC: DialogContext, _reason: DialogReason, _result?: any): Promise<DialogTurnResult>
매개 변수
- outerDC
- DialogContext
현재 대화 전환에 대한 DialogContext.
- _reason
- DialogReason
대화 상자가 다시 시작된 이유입니다.
- _result
-
any
선택 사항으로, 호출된 대화 상자에서 반환된 값입니다. 반환되는 값의 형식은 자식 대화 상자에 따라 달라집니다.
반환
Promise<DialogTurnResult>
비동기 작업을 나타내는 Promise입니다.
설명
작업이 성공하면 이 대화 상자가 처리된 후에도 이 대화 상자가 여전히 활성 상태인지 여부를 나타냅니다.
일반적으로 자식 대화 상자는 부모의 컨텍스트에서 beginDialog(DialogContext, 개체)에 대한 호출로 시작되었습니다. 그러나 DialogContext.replaceDialog(string, object) 메서드가 호출되면 논리 자식 대화 상자가 원래 대화와 다를 수 있습니다.
이 메서드가 재정의되지
상속된 메서드 세부 정보
configure(Record<string, unknown>)
개체를 구성하기 위한 Fluent 메서드입니다.
function configure(config: Record<string, unknown>): this
매개 변수
- config
-
Record<string, unknown>
적용할 구성 설정입니다.
반환
this
작업이 완료된 후 구성 가능한.
findDialog(string)
이전에 컨테이너에 추가된 자식 대화 상자를 찾습니다.
function findDialog(dialogId: string): Dialog | undefined
매개 변수
- dialogId
-
string
조회할 대화 상자의 ID입니다.
반환
Dialog | undefined
대화 상자(있는 경우)입니다. 그렇지 않으면 null입니다.
getConverter(string)
function getConverter(_property: string): Converter | ConverterFactory
매개 변수
- _property
-
string
조건부 선택기 구성의 키입니다.
반환
선택기 구성의 변환기입니다.
getVersion()
다시 배포할 때 봇 변경 내용을 검색하는 데 사용되는 인코딩된 문자열입니다.
function getVersion(): string
반환
string
대화 상자를 다시 시작해야 하는 방식으로 대화 상자가 변경된 경우에만 변경해야 하는 고유 문자열입니다.
설명
기본적으로 id versionChanged 이벤트가 발생합니다. 이 이벤트가 봇에서 처리되지 않으면 오류가 throw되어 봇 오류 처리기 논리가 실행됩니다.
빈 문자열을 반환하면 구성 요소에 대한 버전 추적이 모두 함께 사용하지 않도록 설정됩니다.
onDialogEvent(DialogContext, DialogEvent)
현재 대화 상자 또는 현재 대화 상자가 시작된 대화 상자에서 DialogContext.emitEvent()사용하여 이벤트가 발생할 때 호출됩니다.
function onDialogEvent(dc: DialogContext, e: DialogEvent): Promise<boolean>
매개 변수
현재 대화 전환에 대한 대화 컨텍스트입니다.
발생 중인 이벤트입니다.
반환
Promise<boolean>
True이면 현재 대화 상자에서 이벤트를 처리하고 버블링을 중지해야 합니다.