使用“提示”和“说”编写简单的Node.js CLI文本转语音应用程序。 如何在显示新的提示行之前让提示等待语音结束?
我将chat()移到了回调之外(请参阅末尾的注释代码),但这会导致提示提早出现(正常行为)。
我希望语音结束后会返回提示,因为一旦say.speak回调运行后,chat()就会重新启动。
该程序在说完之后立即退出,没有显示新提示。
const prompt = require('prompt')
const say = require('say')
chat()
function chat() {
prompt.get(['chat'], (error, result)=> {
if(error) return console.log('prompt <ERROR>: '+error.message)
if (result.chat === 'exit') {
terminate_self()
} else if (result.chat == '') {
say.speak('No input received.', '', '', ()=> {
chat() // program terminates once speech is complete
})
} else {
// process input here
say.speak(result.chat, '', '', ()=> {
chat() // program terminates once speech is complete
})
}
// chat() // program stays alive, BUT prompt returns before speech is completed
})
}
current result:
user@homeserver:~/Nodejs/ttschat$ node bin.js
chat | hey
user@homeserver:~/Nodejs/ttschat$
desired result:
user@homeserver:~/Nodejs/ttschat$ node bin.js
chat | hey
chat | hey
chat | exit
user@homeserver:~/Nodejs/ttschat$
答案 0 :(得分:0)