我尝试在下面的代码中使用async / await。
在if/else
部分,它会正确验证,但嵌套函数不会被调用。
代码在if/else
完成后停止。
有人可以对此有所启发吗?感谢。
async function initBot () {
await botui.message.bot({
content: `Do you have any questions?`
})
let q1 = await botui.action.button({
action: [{
text: 'Yes',
value: 'yes'
}, {
text: 'No',
value: 'no'
}]
})
// This is where it's stuck
if (q1.value === 'yes') {
askQuestion()
} else {
endConvo()
}
let endConvo = async () => {
await botui.message.bot({
content: `END`
})
}
let askQuestion = async () => {
await botui.message.bot({
content: `What's your questions?`
})
}
}
export default initBot
答案 0 :(得分:0)
在异步函数
之前尝试等待if (q1.value === 'yes') {
await askQuestion()
} else {
await endConvo()
}
因为askQuestion()和endConvo()是异步函数,所以程序退出时无需等待它们完成
答案 1 :(得分:0)
只是在endConvo
中使用1>}之前声明这些函数askQuestion
和if/else
的情况。
使用ESlint给了我这个线索。