У меня есть простой фрагмент кода, в котором я хочу запустить операцию первого запуска в начале и позволить диалоговому окну по умолчанию обрабатывать все остальное. В коде ниже.
bot.dialog('/firstRun', [firstRun1])
function firstRun1(session) {
session.replaceDialog('/')
}
bot.dialog('/', new builder.IntentDialog()
.matches(/wishlist/, '/wishlist')
.matches(/exclusive/, '/exclusive')
.onDefault('/runCampaign')
)
bot.dialog('/wishlist', (session, args) => {
session.endDialog('Add to wishlist')
})
bot.dialog('/exclusive', (session, args) => {
session.endDialog('Exclusive')
})
bot.dialog('/runCampaign', [runCampaign1])
function runCampaign1(session) {
session.send('default')
}
Моя проблема прямо здесь. Когда человек вводит эксклюзив, я полагаю, что диалоговое окно по умолчанию будет запускать свои совпадения и в идеале должно запускать эксклюзив независимо от того, сколько раз, но по какой-то причине этого не происходит, как показано на снимке экрана ниже. Как только человек вводит эксклюзив или список желаний в начале, он всегда запускает значение по умолчанию внизу, как я могу это исправить. Также как обмениваться данными между различными предложениями соответствия в IntentDialog, скажем, я хочу иметь некоторую переменную session.dialogData.name для совпадений и по умолчанию ОБНОВЛЕНИЕ 1 Вместо говоря, что session.endDialog внутри двух областей в моем коде выше, я просто написал session.send() без завершения каких-либо диалогов, и теперь ничего не происходит, когда я набираю эксклюзив или список желаний. Я что-то упускаю?