WaterfallDialog class
Uma cascata é uma caixa de diálogo otimizada para solicitar a um usuário uma série de perguntas.
- Extends
-
Dialog<O>
Comentários
As cascatas aceitam uma pilha de funções que serão executadas em sequência. Cada etapa em cascata pode fazer uma pergunta ao usuário e a resposta do usuário será passada para a próxima etapa na cascata por meio de step.result. Um objeto step.value especial pode ser usado para persistir valores entre as etapas:
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;
Construtores
| Waterfall |
Cria uma nova caixa de diálogo em cascata que contém a matriz de etapas fornecida. |
Propriedades
| id | ID exclusiva da caixa de diálogo. Define a ID exclusiva da caixa de diálogo. |
| telemetry |
Obtém o cliente de telemetria para esta caixa de diálogo. Define o cliente de telemetria para essa caixa de diálogo. |
Propriedades herdadas
| End |
Obtém um resultado de fim de turno padrão. |
Métodos
| add |
Adiciona uma nova etapa à cascata. |
| begin |
Chamado quando a |
| continue |
Chamado quando o |
| end |
Chamado quando a caixa de diálogo está terminando. |
| get |
Obtém a versão da caixa de diálogo, composta pela ID e número de etapas. |
| resume |
Chamado quando um filho WaterfallDialog completou sua vez, retornando o controle para essa caixa de diálogo. |
Métodos herdados
| configure(Record<string, unknown>) | Método fluente para configurar o objeto. |
| get |
|
| on |
Chamado quando um evento foi gerado, usando |
| reprompt |
Quando substituído em uma classe derivada, reprompta o usuário para entrada. |
Detalhes do construtor
WaterfallDialog(string, WaterfallStep<O>[])
Cria uma nova caixa de diálogo em cascata que contém a matriz de etapas fornecida.
new WaterfallDialog(dialogId: string, steps?: WaterfallStep<O>[])
Parâmetros
- dialogId
-
string
ID exclusiva da caixa de diálogo dentro do componente ou defina sua adição.
- steps
-
WaterfallStep<O>[]
(Opcional) matriz de funções de etapa de cascata assíncronas.
Comentários
Consulte a função
Detalhes da propriedade
id
ID exclusiva da caixa de diálogo. Define a ID exclusiva da caixa de diálogo.
string id
Valor da propriedade
string
A ID da caixa de diálogo.
Comentários
Isso será gerado automaticamente se não for especificado.
telemetryClient
Obtém o cliente de telemetria para esta caixa de diálogo. Define o cliente de telemetria para essa caixa de diálogo.
BotTelemetryClient telemetryClient
Valor da propriedade
BotTelemetryClient
O
Detalhes das propriedades herdadas
EndOfTurn
Obtém um resultado de fim de turno padrão.
static EndOfTurn: DialogTurnResult
Valor da propriedade
Comentários
Esse resultado indica que uma caixa de diálogo (ou uma etapa lógica em uma caixa de diálogo) concluiu o processamento para a curva atual, ainda está ativa e está aguardando mais entrada.
Detalhes do método
addStep(WaterfallStep<O>)
Adiciona uma nova etapa à cascata.
function addStep(step: WaterfallStep<O>): this
Parâmetros
- step
Função de etapa assíncrona a ser chamada.
Retornos
this
Caixa de diálogo cascata para chamadas fluentes para addStep().
Comentários
Todas as funções de etapa devem ser assíncronas e retornar um DialogTurnResult. O WaterfallStepContext passado para sua função deriva de DialogContext e contém vários métodos de manipulação de pilha que retornam um DialogTurnResult para que você possa retornar o resultado do método DialogContext que você chama.
A função de etapa em si pode ser um fechamento assíncrono:
const helloDialog = new WaterfallDialog('hello');
helloDialog.addStep(async (step) => {
await step.context.sendActivity(`Hello World!`);
return await step.endDialog();
});
Uma função assíncrona nomeada:
async function helloWorldStep(step) {
await step.context.sendActivity(`Hello World!`);
return await step.endDialog();
}
helloDialog.addStep(helloWorldStep);
Ou um método de classe que foi associado ao seu ponteiro this:
helloDialog.addStep(this.helloWorldStep.bind(this));
beginDialog(DialogContext, O)
Chamado quando a
function beginDialog(dc: DialogContext, options?: O): Promise<DialogTurnResult>
Parâmetros
O dialogContext
Retornos
Promise<DialogTurnResult>
Uma promessa que representa a operação assíncrona.
Comentários
Se a tarefa for bem-sucedida, o resultado indicará se a caixa de diálogo ainda estará ativa depois que a curva for processada pela caixa de diálogo.
continueDialog(DialogContext)
Chamado quando o
function continueDialog(dc: DialogContext): Promise<DialogTurnResult>
Parâmetros
O dialogContext
Retornos
Promise<DialogTurnResult>
Uma promessa que representa a operação assíncrona.
Comentários
Se a tarefa for bem-sucedida, o resultado indicará se a caixa de diálogo ainda estará ativa depois que a curva tiver sido processada pela caixa de diálogo. O resultado também pode conter um valor retornado.
endDialog(TurnContext, DialogInstance, DialogReason)
Chamado quando a caixa de diálogo está terminando.
function endDialog(context: TurnContext, instance: DialogInstance, reason: DialogReason): Promise<void>
Parâmetros
- context
-
TurnContext
Contexto para a virada atual da conversa.
- instance
- DialogInstance
A instância da caixa de diálogo atual.
- reason
- DialogReason
O motivo pelo qual a caixa de diálogo está terminando.
Retornos
Promise<void>
getVersion()
Obtém a versão da caixa de diálogo, composta pela ID e número de etapas.
function getVersion(): string
Retornos
string
Versão da caixa de diálogo, composta pela ID e número de etapas.
resumeDialog(DialogContext, DialogReason, any)
Chamado quando um filho WaterfallDialog completou sua vez, retornando o controle para essa caixa de diálogo.
function resumeDialog(dc: DialogContext, reason: DialogReason, result?: any): Promise<DialogTurnResult>
Parâmetros
O DialogContext para a virada atual da conversa.
- reason
- DialogReason
(xref:botbuilder-dialogs. DialogReason) por que a caixa de diálogo foi retomada.
- result
-
any
Opcional, o valor retornado da caixa de diálogo que foi chamada. O tipo do valor retornado depende da caixa de diálogo filho.
Retornos
Promise<DialogTurnResult>
Uma promessa que representa a operação assíncrona.
Detalhes do método herdado
configure(Record<string, unknown>)
Método fluente para configurar o objeto.
function configure(config: Record<string, unknown>): this
Parâmetros
- config
-
Record<string, unknown>
Configurações a serem aplicadas.
Retornos
this
O configurável após a conclusão da operação.
Herdado deConfigurble.configure
getConverter(string)
function getConverter(_property: string): Converter | ConverterFactory
Parâmetros
- _property
-
string
A chave da configuração do seletor condicional.
Retornos
O conversor para a configuração do seletor.
herdado deconfigurable.getConverter
onDialogEvent(DialogContext, DialogEvent)
Chamado quando um evento foi gerado, usando DialogContext.emitEvent(), pela caixa de diálogo atual ou por uma caixa de diálogo iniciada pela caixa de diálogo atual.
function onDialogEvent(dc: DialogContext, e: DialogEvent): Promise<boolean>
Parâmetros
O contexto da caixa de diálogo para a virada atual da conversa.
O evento que está sendo gerado.
Retornos
Promise<boolean>
True se o evento for tratado pela caixa de diálogo atual e o borbulhamento deve parar.
herdado da caixa de diálogo.onDialogEvent
repromptDialog(TurnContext, DialogInstance)
Quando substituído em uma classe derivada, reprompta o usuário para entrada.
function repromptDialog(_context: TurnContext, _instance: DialogInstance): Promise<void>
Parâmetros
- _context
-
TurnContext
O objeto de contexto para a curva.
- _instance
- DialogInstance
Informações de estado atuais para essa caixa de diálogo.
Retornos
Promise<void>
Comentários
Caixas de diálogo derivadas que dão suporte à validação e à lógica de nova solicitação devem substituir esse método. Por padrão, esse método não tem efeito.
O
Consulte também
Herdado deDialog.repromptDialog