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.log
是console.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.log
是BottomBar.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
希望它被接受。