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