我正在使用inquirer.js
编写Node CLI命令,这可能需要很长时间才能完成,所以我尝试更新这样的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,如官方example所述,似乎工作正常。
当ui.log
为console.log('\n' . text)
时,我的输出为:
⠋ Loading...
✓ Thing A complete
⠹ Loading...
✓ Thing B complete
⠴ Loading...
✓ Thing C complete
{display json result}
当ui.log
是inquirer.js' BottomBar.log.write(text)
,我的输出只是:
✓ Thing A complete
⠹ Loading...
{display json result}
正在加载......' line保持在底部,但只显示第一个日志。
答案 0 :(得分:2)
这似乎是Inquirer.js中的一个问题。当我从0.12.0更新到更新的基于ES6 Promise的界面时,我遇到了它。
我已经开了一个问题: https://github.com/SBoudrias/Inquirer.js/issues/485
并提出修复请求: https://github.com/SBoudrias/Inquirer.js/pull/486
希望它被接受。