如何解决将 spawn 与 shell:true, detached:true 一起使用,并且仍然在 stdout 上获取数据事件
我有这个脚本可以读取 WASD 键并打印到控制台:
const keypress = require('keypress');
// make `process.stdin` begin emitting "keypress" events
keypress(process.stdin);
// listen for the "keypress" event
process.stdin.on('keypress',function (ch,key) {
if (key && key.name === 'c' && key.ctrl) process.exit();
switch (key.name) {
case 'a':
console.log('Left');
break;
case 'd':
console.log('Right');
break;
case 'w':
console.log('Up');
break;
case 's':
console.log('Down');
break;
default:
console.log(key.name);
break;
}
});
process.stdin.setRawMode(true);
process.stdin.resume();
我正在尝试从这样的另一个脚本中运行它:
const { execFile,spawn } = require('child_process');
const exe = spawn('node',['script.js']);
exe.stdout.on('data',data => console.log(`stdout: ${data}`));
exe.stderr.on('data',data => console.log(`stderr: ${data}`));
exe.on('close',code => console.log(`child process exited with code ${code}`));
但唯一的输出就是这个。
stderr: ^C
child process exited with code 3221225786
有没有办法让这个工作?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。