inquirer.js – 结合BottomBar和顺序日志

我使用inquirer.js编写了一个Node CLI命令,这可能需要很inquirer.js才能完成,因此我正在尝试更新UI,如下所示:

 ✓ Thing A complete ✓ Thing B complete ✓ Thing C complete ⠹ Loading... {display json result} 

(其中“正在加载…”停留在底部,日志显示为完成)。

简单来说,命令有这样的结构:

 ui.startLoader() thingA() .then((res) => { ui.log('✓ Thing A complete') return res }) .then((res) => { return res.reduce(thingB, Promise.resolve()) }) .then((res) => { ui.log('✓ Thing B complete') return res }) .then((res) => { return res.reduce(thingC, Promise.resolve()) }) .then((res) => { ui.log('✓ Thing C complete') return res }) .then(ui.json) .catch(console.log) .then(ui.exit) 

ui.startloader只是设置了官方示例中描述的BottomBar,并显示工作正常。

ui.logconsole.log('\n' . text) ui.log console.log('\n' . text) ,我的输出是:

 ⠋ Loading... ✓ Thing A complete ⠹ Loading... ✓ Thing B complete ⠴ Loading... ✓ Thing C complete {display json result} 

ui.logBottomBar.log.write(text) ,我的输出只是:

 ✓ Thing A complete ⠹ Loading... {display json result} 

“正在加载…”行停留在底部,但只显示第一个日志。

这似乎是Inquirer.js中的一个问题。 当从0.12.0更新到更新的基于ES6 Promise的界面时,我遇到了这个问题。

我已经打开了一个问题: https : //github.com/SBoudrias/Inquirer.js/issues/485

并提出修复请求: https : //github.com/SBoudrias/Inquirer.js/pull/486

希望它被接受。