2017-12-06 7 views
1

ノードバージョン8.1.0を使用しています。 端末で最初に入力した後に読み取り線がぶら下がる

はreadlineの上のドキュメントを読んでいた: https://nodejs.org/docs/latest-v8.x/api/readline.html

国closeメソッドを、それが述べている:

readline.Interfaceインスタンスは、「閉じる」一度 「完成」されていると考えるべき

イベントが送出されます。

当然、私は私の例で行ったように、新しいインターフェースを開くでしょう。

const readline = require('readline'); 

function question(question, defaultAnswer) { 
    // Create the interface 
    const rl = readline.createInterface({ 
     input: process.stdin, 
     output: process.stdout, 
    }); 
    return new Promise((resolve, reject) => { 
     rl.question(question, (answer) => { 
      // Relinquished control over the input and output streams 
      rl.close(); 
      if (answer.length === 0) { 
       resolve(defaultAnswer); 
      } else { 
       resolve(answer); 
      } 
     }); 
    }); 
} 

(async() => { 
    let answer; 
    answer = await question('1? [y] ', 'y'); 
    console.log('answer', answer); 
    answer = await question('2? [y] ', 'y'); 
    console.log('answer', answer); 
    answer = await question('3? [y] ', 'y'); 
    console.log('answer', answer); 
})(); 

出力:それはしかしハング

$ node test.js 
1? [y] y 
answer y 
2? [y] 

。なぜ私は考えていない?残念ながら、Macに座っていると、これがこれに影響するかどうかは分かりません。

+0

ノードバージョン9.1.0のMacでコードをテストしました。すべてうまく動作します。ここには何もありません。 – rweisse

+0

私はSierra 10.12.6も実行しています。しかし、ノードはOSから独立している必要があります。ノードのバージョンをv9.2.0に更新しようとする可能性があります。 readlines libを9.0.0から9.2.0に変更していません。しかし、おそらく、readlineの機能に影響を与える他のlibにいくつかの変更が加えられています。 – rweisse

答えて

1

だから私はここにバグレポートを提出:https://github.com/nodejs/node/issues/17495

を。これは、ノード8.1.0の既知の問題です。 8.1.0から他のバージョンに変更すると動作しました。

関連する問題