2017-01-22 2 views
1

私が完了するまでにかなりの時間がかかることができinquirer.jsを使用してノードCLIコマンドを書いていますので、私はこのようなUIの何かを更新しようとしている:inquirer.js - シーケンシャルログでBottomBarを組み合わせ

✓ Thing A complete 
✓ Thing B complete 
✓ Thing C complete 
⠹ Loading... 

{display json result} 

(「Loading ...」は下部にあり、ログは完了すると表示されます)。簡体

、コマンドは次のような構造を有する:

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.logconsole.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} 

'読み込み中...' の行はとどまります下部に表示されますが、最初のログだけが表示されます。

答えて

1

Inquirer.jsの問題のようです。 0.12.0から新しいES6 Promiseベースのインターフェースにアップデートすると、私はそれを見つけました。

私は問題が開かれました: https://github.com/SBoudrias/Inquirer.js/issues/485

をし、修正のためのプル要求に入れる: https://github.com/SBoudrias/Inquirer.js/pull/486

うまくいけば、それが受け入れられています。

+0

ありがとうございます!あなたの修正は私のために働きます、私はPRで何が起こっているのかを確認してから、正確にマークします:) – daviestar

+0

これは[v3.0.0](https://github.com/SBoudrias/Inquirer)で既にマージされリリースされています.js/releases/tag/v3.0.0) – daviestar