Bagikan melalui


WaterfallDialog class

Air terjun adalah dialog yang dioptimalkan untuk meminta pengguna dengan serangkaian pertanyaan.

Memperluas

Dialog<O>

Keterangan

Air terjun menerima tumpukan fungsi yang akan dijalankan secara berurutan. Setiap langkah air terjun dapat mengajukan pertanyaan tentang pengguna dan respons pengguna akan diteruskan ke langkah berikutnya di air terjun melalui step.result. Objek step.value khusus dapat digunakan untuk mempertahankan nilai di antara langkah-langkah:

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;

Konstruktor

WaterfallDialog(string, WaterfallStep<O>[])

Membuat dialog air terjun baru yang berisi array langkah yang diberikan.

Properti

id

ID unik dialog. Mengatur ID unik dialog.

telemetryClient

Mendapatkan klien telemetri untuk dialog ini. Mengatur klien telemetri untuk dialog ini.

Properti yang Diwariskan

EndOfTurn

Mendapatkan hasil akhir giliran default.

Metode

addStep(WaterfallStep<O>)

Menambahkan langkah baru ke air terjun.

beginDialog(DialogContext, O)

Dipanggil ketika WaterfallDialog dimulai dan didorong ke tumpukan dialog.

continueDialog(DialogContext)

Dipanggil ketika WaterfallDialog berlanjut, di mana itu adalah dialog aktif dan pengguna membalas denganAktivitas baru.

endDialog(TurnContext, DialogInstance, DialogReason)

Dipanggil saat dialog berakhir.

getVersion()

Mendapatkan versi dialog, terdiri dari ID dan jumlah langkah.

resumeDialog(DialogContext, DialogReason, any)

Dipanggil ketika anak WaterfallDialog menyelesaikan gilirannya, mengembalikan kontrol ke dialog ini.

Metode yang Diwarisi

configure(Record<string, unknown>)

Metode fasih untuk mengonfigurasi objek.

getConverter(string)
onDialogEvent(DialogContext, DialogEvent)

Dipanggil ketika peristiwa telah dinaikkan, menggunakan DialogContext.emitEvent(), dengan dialog saat ini atau dialog yang dimulai dialog saat ini.

repromptDialog(TurnContext, DialogInstance)

Saat ditimpa di kelas turunan, promporsi ulang pengguna untuk input.

Detail Konstruktor

WaterfallDialog(string, WaterfallStep<O>[])

Membuat dialog air terjun baru yang berisi array langkah yang diberikan.

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

Parameter

dialogId

string

ID unik dialog dalam komponen atau atur ke yang ditambahkan.

steps

WaterfallStep<O>[]

(Opsional) array fungsi langkah air terjun asinkron.

Keterangan

Lihat fungsi addStep() untuk detail tentang membuat fungsi langkah yang valid.

Detail Properti

id

ID unik dialog. Mengatur ID unik dialog.

string id

Nilai Properti

string

Id untuk dialog.

Keterangan

Ini akan dibuat secara otomatis jika tidak ditentukan.

telemetryClient

Mendapatkan klien telemetri untuk dialog ini. Mengatur klien telemetri untuk dialog ini.

BotTelemetryClient telemetryClient

Nilai Properti

BotTelemetryClient

BotTelemetryClient digunakan untuk pengelogan.

Detail Properti yang Diwariskan

EndOfTurn

Mendapatkan hasil akhir giliran default.

static EndOfTurn: DialogTurnResult

Nilai Properti

Keterangan

Hasil ini menunjukkan bahwa dialog (atau langkah logis dalam dialog) telah menyelesaikan pemrosesan untuk giliran saat ini, masih aktif, dan menunggu lebih banyak input.

Diwariskan Dari dialog.EndOfTurn

Detail Metode

addStep(WaterfallStep<O>)

Menambahkan langkah baru ke air terjun.

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

Parameter

step

WaterfallStep<O>

Fungsi langkah asinkron untuk dipanggil.

Mengembalikan

this

Dialog air terjun untuk panggilan fasih ke addStep().

Keterangan

Semua fungsi langkah harus asinkron dan mengembalikan DialogTurnResult. WaterfallStepContext yang diteruskan ke fungsi Anda berasal dari DialogContext dan berisi banyak metode manipulasi tumpukan yang mengembalikan DialogTurnResult sehingga Anda biasanya hanya dapat mengembalikan hasil dari metode DialogContext yang Anda panggil.

Fungsi langkah itu sendiri dapat berupa penutupan asinkron:

const helloDialog = new WaterfallDialog('hello');

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

Fungsi asinkron bernama:

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

helloDialog.addStep(helloWorldStep);

Atau metode kelas yang terikat ke penunjuk this:

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

beginDialog(DialogContext, O)

Dipanggil ketika WaterfallDialog dimulai dan didorong ke tumpukan dialog.

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

Parameter

dc
DialogContext

Dialog Konteks untuk pergantian percakapan saat ini.

options

O

Informasi awal opsional untuk diteruskan ke dialog .

Mengembalikan

Promise<DialogTurnResult>

Janji yang mewakili operasi asinkron.

Keterangan

Jika tugas berhasil, hasilnya menunjukkan apakah Dialog masih aktif setelah giliran diproses oleh dialog.

continueDialog(DialogContext)

Dipanggil ketika WaterfallDialog berlanjut, di mana itu adalah dialog aktif dan pengguna membalas denganAktivitas baru.

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

Parameter

dc
DialogContext

Dialog Konteks untuk pergantian percakapan saat ini.

Mengembalikan

Promise<DialogTurnResult>

Janji yang mewakili operasi asinkron.

Keterangan

Jika tugas berhasil, hasilnya menunjukkan apakah dialog masih aktif setelah giliran diproses oleh dialog. Hasilnya mungkin juga berisi nilai pengembalian.

endDialog(TurnContext, DialogInstance, DialogReason)

Dipanggil saat dialog berakhir.

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

Parameter

context

TurnContext

Konteks untuk pergantian percakapan saat ini.

instance
DialogInstance

Instans dialog saat ini.

reason
DialogReason

Alasan dialog berakhir.

Mengembalikan

Promise<void>

getVersion()

Mendapatkan versi dialog, terdiri dari ID dan jumlah langkah.

function getVersion(): string

Mengembalikan

string

Versi dialog, terdiri dari ID dan jumlah langkah.

resumeDialog(DialogContext, DialogReason, any)

Dipanggil ketika anak WaterfallDialog menyelesaikan gilirannya, mengembalikan kontrol ke dialog ini.

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

Parameter

dc
DialogContext

DialogContext untuk pergantian percakapan saat ini.

reason
DialogReason

(xref:botbuilder-dialogs. DialogReason) mengapa dialog dilanjutkan.

result

any

Opsional, nilai yang dikembalikan dari dialog yang dipanggil. Jenis nilai yang dikembalikan tergantung pada dialog anak.

Mengembalikan

Promise<DialogTurnResult>

Janji yang mewakili operasi asinkron.

Detail Metode yang Diwarisi

configure(Record<string, unknown>)

Metode fasih untuk mengonfigurasi objek.

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

Parameter

config

Record<string, unknown>

Pengaturan konfigurasi yang akan diterapkan.

Mengembalikan

this

yang dapat dikonfigurasi setelah operasi selesai.

Diwariskan DariConfigurable.configure

getConverter(string)

function getConverter(_property: string): Converter | ConverterFactory

Parameter

_property

string

Kunci konfigurasi pemilih bersyarah.

Mengembalikan

Pengonversi untuk konfigurasi pemilih.

Diwarisi DariConfigurable.getConverter

onDialogEvent(DialogContext, DialogEvent)

Dipanggil ketika peristiwa telah dinaikkan, menggunakan DialogContext.emitEvent(), dengan dialog saat ini atau dialog yang dimulai dialog saat ini.

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

Parameter

dc
DialogContext

Konteks dialog untuk pergantian percakapan saat ini.

e
DialogEvent

Peristiwa yang sedang dinaikkan.

Mengembalikan

Promise<boolean>

True jika peristiwa ditangani oleh dialog saat ini dan gelembung harus berhenti.

Diwarisi Dari dialog.onDialogEvent

repromptDialog(TurnContext, DialogInstance)

Saat ditimpa di kelas turunan, promporsi ulang pengguna untuk input.

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

Parameter

_context

TurnContext

Objek konteks untuk giliran.

_instance
DialogInstance

Informasi status saat ini untuk dialog ini.

Mengembalikan

Promise<void>

Keterangan

Dialog turunan yang mendukung validasi dan logika permintaan ulang harus mengambil alih metode ini. Secara default, metode ini tidak berpengaruh.

DialogContext memanggil metode ini ketika dialog saat ini harus meminta kembali input dari pengguna. Metode ini diimplementasikan untuk dialog perintah.

Lihat juga

Diwariskan Dari Dialog.repromptDialog