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
| Waterfall |
Membuat dialog air terjun baru yang berisi array langkah yang diberikan. |
Properti
| id | ID unik dialog. Mengatur ID unik dialog. |
| telemetry |
Mendapatkan klien telemetri untuk dialog ini. Mengatur klien telemetri untuk dialog ini. |
Properti yang Diwariskan
| End |
Mendapatkan hasil akhir giliran default. |
Metode
| add |
Menambahkan langkah baru ke air terjun. |
| begin |
Dipanggil ketika |
| continue |
Dipanggil ketika |
| end |
Dipanggil saat dialog berakhir. |
| get |
Mendapatkan versi dialog, terdiri dari ID dan jumlah langkah. |
| resume |
Dipanggil ketika anak WaterfallDialog menyelesaikan gilirannya, mengembalikan kontrol ke dialog ini. |
Metode yang Diwarisi
| configure(Record<string, unknown>) | Metode fasih untuk mengonfigurasi objek. |
| get |
|
| on |
Dipanggil ketika peristiwa telah dinaikkan, menggunakan |
| reprompt |
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()
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
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
function beginDialog(dc: DialogContext, options?: O): Promise<DialogTurnResult>
Parameter
Dialog Konteks untuk pergantian percakapan saat ini.
Mengembalikan
Promise<DialogTurnResult>
Janji yang mewakili operasi asinkron.
Keterangan
Jika tugas berhasil, hasilnya menunjukkan apakah Dialog
continueDialog(DialogContext)
Dipanggil ketika
function continueDialog(dc: DialogContext): Promise<DialogTurnResult>
Parameter
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
DialogContext
- 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
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
Konteks dialog untuk pergantian percakapan saat ini.
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