我有一段簡單的代碼,我想在開始時運行第一次運行操作,並讓默認對話框處理其他所有事情。在下面的代碼中。IntentDialog在機器人框架的開始處僅匹配一次
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 UPDATE 1 而不是在2個區域內說session.endDialog在我上面的代碼中,我只寫了session.send()而沒有結束任何對話框,現在當我輸入exclusive或wishlist時沒有任何反應。我錯過了什麼嗎?
但我想我們不應該關閉默認對話框。它是好的,如果我們關閉它 – PirateApp
OMG它的作品!非常感謝!您保存了我的一天 – PirateApp
實際上,您不會結束默認對話框,您可以結束從根對話框的onDefault調用的runCampaign對話框。根對話框仍在運行。 –