다음을 통해 공유


IDialogWaterfallStep interface

DialogAction.waterfall()단계로 전달된 함수에 대한 서명입니다. 폭포를 사용하면 일련의 질문을 사용하여 사용자에게 정보를 묻는 메시지를 표시할 수 있습니다. 폭포의 각 단계는 기본 제공 프롬프트중 하나를 실행하거나, session.beginDialog()호출하여 새 대화 상자를 시작하거나, skip()사용하여 폭포의 다음 단계로 이동하거나, 폭포를 종료할 수 있습니다.

폭포 단계에서 대화 상자 또는 기본 제공 프롬프트를 호출하면 해당 대화 상자 또는 프롬프트의 결과가 results 매개 변수를 통해 폭포의 다음 단계로 전달됩니다. 사용자는 기본 제공 프롬프트를 취소하기 위해 "신경 쓰지 않는다"고 말할 수 있으므로 계속하기 전에 적어도 results.response 확인하여 이를 방지해야 합니다. 폭포가 계속되는 이유에 대한 자세한 설명은 결과에 대해 반환된 코드를 확인하여 확인할 수.

전달된 skip() 함수를 사용하여 폭포의 다음 단계로 수동으로 진행할 수 있습니다. skip({ response: "some text" }) 사용하여 호출하면 기본 제공 프롬프트의 결과를 보다 정확하게 모방하고 전체 폭포 논리를 간소화할 수 있습니다.

skip() 호출을 사용하여 폭포의 모든 단계를 통과하거나 다른 프롬프트 또는 대화 상자를 시작하지 않음으로써 폭포를 일찍 종료할 수 있습니다.

참고: 폭포에는 마지막 단계에서 프롬프트 또는 대화 상자를 호출하는 경우 현재 대화 상자가 자동으로 종료되는 숨겨진 마지막 단계가 있습니다. 이는 대화 상자가 깊고 스택의 마지막 자식에서 session.endDialog() 호출하여 전체 스택을 종료하려는 경우에 유용합니다. 마지막 자식이 닫히면 모든 부모가 이 숨겨진 단계로 이동하게 되며, 이 단계는 스택까지 닫힙니다. 이는 일반적으로 원하는 동작이지만 이를 방지하거나 중간에 중지하려는 경우 폭포를 앞으로 진행하지 않는 session.send() 같은 작업을 수행하거나 호출하는 단계를 폭포 끝에 추가해야 합니다.