我正在使用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
只需按照官方example中所述设置BottomBar,并且看起来工作正常。当
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}
“正在加载...”行保留在底部,但仅显示第一个日志。
最佳答案
在Inquirer.js中,这似乎是一个问题。从0.12.0升级到更新的基于ES6 Promise的界面时,我遇到了它。
我已经打开一个问题:
https://github.com/SBoudrias/Inquirer.js/issues/485
并提出请求修复的请求:
https://github.com/SBoudrias/Inquirer.js/pull/486
希望它被接受。
关于javascript - Inquirer.js-将BottomBar与顺序日志结合,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41791589/