다음을 통해 공유


WaterfallDialog class

폭포는 사용자에게 일련의 질문을 표시하도록 최적화된 대화 상자입니다.

Extends

Dialog<O>

설명

폭포는 순서대로 실행되는 함수 스택을 허용합니다. 각 폭포 단계는 사용자의 질문을 할 수 있으며 사용자의 응답은 step.result통해 폭포의 다음 단계로 전달됩니다. 특수 step.value 개체를 사용하여 단계 간에 값을 유지할 수 있습니다.

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;

생성자

WaterfallDialog(string, WaterfallStep<O>[])

지정된 단계 배열을 포함하는 새 폭포 대화 상자를 만듭니다.

속성

id

대화 상자의 고유 ID입니다. 대화 상자의 고유 ID를 설정합니다.

telemetryClient

이 대화 상자의 원격 분석 클라이언트를 가져옵니다. 이 대화 상자의 원격 분석 클라이언트를 설정합니다.

상속된 속성

EndOfTurn

기본 턴 종료 결과를 가져옵니다.

메서드

addStep(WaterfallStep<O>)

폭포에 새 단계를 추가합니다.

beginDialog(DialogContext, O)

WaterfallDialog 시작되어 대화 상자 스택으로 푸시될 때 호출됩니다.

continueDialog(DialogContext)

WaterfallDialog계속호출됩니다. 여기서 활성 대화 상자이며 사용자는 새 활동회신합니다.

endDialog(TurnContext, DialogInstance, DialogReason)

대화 상자가 끝날 때 호출됩니다.

getVersion()

ID 및 단계 수로 구성된 대화 상자 버전을 가져옵니다.

resumeDialog(DialogContext, DialogReason, any)

자식 WaterfallDialog 턴을 완료하고 이 대화 상자로 컨트롤을 반환할 때 호출됩니다.

상속된 메서드

configure(Record<string, unknown>)

개체를 구성하기 위한 Fluent 메서드입니다.

getConverter(string)
onDialogEvent(DialogContext, DialogEvent)

현재 대화 상자 또는 현재 대화 상자가 시작된 대화 상자에서 DialogContext.emitEvent()사용하여 이벤트가 발생할 때 호출됩니다.

repromptDialog(TurnContext, DialogInstance)

파생 클래스에서 재정의된 경우 입력을 위해 사용자를 다시 프롬프트합니다.

생성자 세부 정보

WaterfallDialog(string, WaterfallStep<O>[])

지정된 단계 배열을 포함하는 새 폭포 대화 상자를 만듭니다.

new WaterfallDialog(dialogId: string, steps?: WaterfallStep<O>[])

매개 변수

dialogId

string

구성 요소 내 대화 상자의 고유 ID이거나 추가되는 대화 상자를 설정합니다.

steps

WaterfallStep<O>[]

(선택 사항) 비동기 폭포 단계 함수의 배열입니다.

설명

유효한 단계 함수를 만드는 방법에 대한 자세한 내용은 addStep() 함수를 참조하세요.

속성 세부 정보

id

대화 상자의 고유 ID입니다. 대화 상자의 고유 ID를 설정합니다.

string id

속성 값

string

대화 상자의 ID입니다.

설명

지정하지 않으면 자동으로 생성됩니다.

telemetryClient

이 대화 상자의 원격 분석 클라이언트를 가져옵니다. 이 대화 상자의 원격 분석 클라이언트를 설정합니다.

BotTelemetryClient telemetryClient

속성 값

BotTelemetryClient

BotTelemetryClient는 로깅에 사용할.

상속된 속성 세부 정보

EndOfTurn

기본 턴 종료 결과를 가져옵니다.

static EndOfTurn: DialogTurnResult

속성 값

설명

이 결과는 대화 상자(또는 대화 상자 내의 논리적 단계)가 현재 턴에 대한 처리를 완료했으며 여전히 활성 상태이며 더 많은 입력을 기다리고 있음을 나타냅니다.

dialog.EndOfTurn 상속된

메서드 세부 정보

addStep(WaterfallStep<O>)

폭포에 새 단계를 추가합니다.

function addStep(step: WaterfallStep<O>): this

매개 변수

step

WaterfallStep<O>

호출할 비동기 단계 함수입니다.

반환

this

addStep()대한 흐름 호출에 대한 폭포 대화 상자입니다.

설명

모든 단계 함수는 비동기여야 하며 DialogTurnResult반환해야 합니다. 함수에 전달된 WaterfallStepContextDialogContext 파생되며 일반적으로 호출하는 DialogContext 메서드의 결과를 반환할 수 있도록 DialogTurnResult 반환하는 수많은 스택 조작 메서드가 포함되어 있습니다.

단계 함수 자체는 비동기 닫기일 수 있습니다.

const helloDialog = new WaterfallDialog('hello');

helloDialog.addStep(async (step) => {
    await step.context.sendActivity(`Hello World!`);
    return await step.endDialog();
});

명명된 비동기 함수:

async function helloWorldStep(step) {
    await step.context.sendActivity(`Hello World!`);
    return await step.endDialog();
}

helloDialog.addStep(helloWorldStep);

또는 this 포인터에 바인딩된 클래스 메서드입니다.

helloDialog.addStep(this.helloWorldStep.bind(this));

beginDialog(DialogContext, O)

WaterfallDialog 시작되어 대화 상자 스택으로 푸시될 때 호출됩니다.

function beginDialog(dc: DialogContext, options?: O): Promise<DialogTurnResult>

매개 변수

dc
DialogContext

현재 대화 전환에 대한 DialogContext.

options

O

대화전달할 선택적 초기 정보입니다.

반환

Promise<DialogTurnResult>

비동기 작업을 나타내는 Promise입니다.

설명

작업이 성공하면 대화 상자 대화 상자에서 턴을 처리한 후에도 여전히 활성 상태인지 여부를 나타냅니다.

continueDialog(DialogContext)

WaterfallDialog계속호출됩니다. 여기서 활성 대화 상자이며 사용자는 새 활동회신합니다.

function continueDialog(dc: DialogContext): Promise<DialogTurnResult>

매개 변수

dc
DialogContext

현재 대화 전환에 대한 DialogContext.

반환

Promise<DialogTurnResult>

비동기 작업을 나타내는 Promise입니다.

설명

작업이 성공하면 결과는 대화 상자에서 턴이 처리된 후에도 대화 상자가 여전히 활성 상태인지 여부를 나타냅니다. 결과에는 반환 값도 포함될 수 있습니다.

endDialog(TurnContext, DialogInstance, DialogReason)

대화 상자가 끝날 때 호출됩니다.

function endDialog(context: TurnContext, instance: DialogInstance, reason: DialogReason): Promise<void>

매개 변수

context

TurnContext

현재 대화 전환에 대한 컨텍스트입니다.

instance
DialogInstance

현재 대화 상자의 인스턴스입니다.

reason
DialogReason

대화 상자가 끝나는 이유입니다.

반환

Promise<void>

getVersion()

ID 및 단계 수로 구성된 대화 상자 버전을 가져옵니다.

function getVersion(): string

반환

string

ID 및 단계 수로 구성된 대화 상자 버전입니다.

resumeDialog(DialogContext, DialogReason, any)

자식 WaterfallDialog 턴을 완료하고 이 대화 상자로 컨트롤을 반환할 때 호출됩니다.

function resumeDialog(dc: DialogContext, reason: DialogReason, result?: any): Promise<DialogTurnResult>

매개 변수

reason
DialogReason

(xref:botbuilder-dialogs. DialogReason) 대화가 다시 시작된 이유입니다.

result

any

선택 사항으로, 호출된 대화 상자에서 반환된 값입니다. 반환되는 값의 형식은 자식 대화 상자에 따라 달라집니다.

반환

Promise<DialogTurnResult>

비동기 작업을 나타내는 Promise입니다.

상속된 메서드 세부 정보

configure(Record<string, unknown>)

개체를 구성하기 위한 Fluent 메서드입니다.

function configure(config: Record<string, unknown>): this

매개 변수

config

Record<string, unknown>

적용할 구성 설정입니다.

반환

this

작업이 완료된 후 구성 가능한.

Configurable.configure 상속된

getConverter(string)

function getConverter(_property: string): Converter | ConverterFactory

매개 변수

_property

string

조건부 선택기 구성의 키입니다.

반환

선택기 구성의 변환기입니다.

Configurable.getConverter 상속된

onDialogEvent(DialogContext, DialogEvent)

현재 대화 상자 또는 현재 대화 상자가 시작된 대화 상자에서 DialogContext.emitEvent()사용하여 이벤트가 발생할 때 호출됩니다.

function onDialogEvent(dc: DialogContext, e: DialogEvent): Promise<boolean>

매개 변수

dc
DialogContext

현재 대화 전환에 대한 대화 컨텍스트입니다.

e
DialogEvent

발생 중인 이벤트입니다.

반환

Promise<boolean>

True이면 현재 대화 상자에서 이벤트를 처리하고 버블링을 중지해야 합니다.

Dialog.onDialogEvent 상속된

repromptDialog(TurnContext, DialogInstance)

파생 클래스에서 재정의된 경우 입력을 위해 사용자를 다시 프롬프트합니다.

function repromptDialog(_context: TurnContext, _instance: DialogInstance): Promise<void>

매개 변수

_context

TurnContext

순서에 대한 컨텍스트 개체입니다.

_instance
DialogInstance

이 대화 상자의 현재 상태 정보입니다.

반환

Promise<void>

설명

유효성 검사 및 다시 프롬프트 논리를 지원하는 파생 대화 상자는 이 메서드를 재정의해야 합니다. 기본적으로 이 메서드는 효과가 없습니다.

DialogContext 현재 대화 상자가 사용자의 입력을 다시 요청해야 하는 경우 이 메서드를 호출합니다. 이 메서드는 프롬프트 대화 상자에 대해 구현됩니다.

참조

Dialog.repromptDialog 상속된