Я немного знаком с Bot Framework и имею дело с некоторыми проблемами с обучением.Одна из таких проблем - правильное завершение разговора, когда вокруг него происходит какая-то сложная логика.Например, у меня есть нечто похожее на это в двух разных местах моего кода:
someFunction(var)
.then(success => {
return someOtherFunction(someOtherVar)
})
.then(success => {
if (success) {
return yetAnotherFunction(otherVar)
} else {
session.endConversation('I'm done with this conversation.') //Change this with session.endDialog but get same result
}
})
.then(success => {
builder.Prompts.confirm('Are you sure?')
})
.catch(error => {
console.log(error)
})
Теперь проблема в том, что, если я заканчиваю разговор / диалог, цепные обещания, кажется, продолжаются, несмотря на меняне возвращая новое обещание.Я вижу в журналах, что диалог / диалог завершился правильно, и все же впоследствии я получаю ошибку, которая гласит следующее:
TypeError: Cannot read property 'prompt' of undefined
at Object.confirm
или ошибка, связанная с тем, что у меня есть в коде вместо builder.Prompts.confirm()
.
С этой целью я начинаю верить, что моя схема цепочки Promises
, возможно, не совсем верна.Мой вопрос тогда многогранен:
Есть ли последовательный способ разорвать цепь обещаний в данной точке?
или
Есть ли лучший способ пройти через несколькообещания, которые позволяют более чистый перерыв?