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 から派生し、DialogTurnResult を返す多数のスタック操作メソッドが含まれているため、通常は、呼び出した DialogContext メソッドから結果を返すことができます。

ステップ関数自体は、非同期クロージャのいずれかになります。

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>

パラメーター

dc
DialogContext

会話の現在のターンの DialogContext

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

操作が完了した後の 構成可能な

継承構成可能。構成

getConverter(string)

function getConverter(_property: string): Converter | ConverterFactory

パラメーター

_property

string

条件付きセレクター構成のキー。

戻り値

セレクター構成のコンバーター。

継承元構成可能な.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 から継承された