39

キーが押されるまでスクリプトの実行を一時停止する関数が必要です。私はもう試した:

var stdin = process.openStdin(); 
require('tty').setRawMode(true);    

stdin.on('keypress', function (chunk, key) {
  process.stdout.write('Get Chunk: ' + chunk + '\n');
  if (key && key.ctrl && key.name == 'c') process.exit();
});

しかし、キープレスをリッスンしているだけで、何も起こりません。プログラムは実行を継続しません。

実行を一時停止するにはどうすればよいですか?

4

13 に答える 13

10

このスニペットは、プロセスを終了したくない場合に役立ちます。

console.log('Press any key to continue.');
process.stdin.once('data', function () {
  continueDoingStuff();
});

これは非同期であるため、ループ内ではそのままでは機能しません。Node 7 を使用している場合は、promise でラップして を使用できますasync/await

于 2017-05-24T14:44:32.597 に答える
2
var fs = require("fs")
var fd = fs.openSync("/dev/stdin", "rs")
fs.readSync(fd, new Buffer(1), 0, 1)
fs.closeSync(fd)

この回答は、node.js の vadzim から取得したものです: readSync from stdin?

于 2018-04-26T11:47:19.440 に答える