javascript - 检测 Node.js 中控制台输出的结尾

标签 javascript node.js child-process

var cp = require("child_process");

var proc = cp.spawn("cmd");
proc.stdout.on("data", data => console.log("Data:", data.toString()));
proc.stdin.write("help\n");
proc.stdin.write("help\n");

在上面的代码片段中,如何检测流何时完成特定命令的写入(即,如果在终端中执行这些命令,它将显示一个闪烁的光标,您可以在其中输入文本)?

我尝试使用监听事件end,但这似乎只有在进程完成时才会被触发。

最佳答案

没有明确的方法可以知道,除非您正在执行的程序具有明确定义的输出格式(例如换行符分隔的 JSON、XML 等)。无论哪种方式,您都必须对程序输出执行某种解析(以及可能的缓冲)。

关于javascript - 检测 Node.js 中控制台输出的结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38576505/

相关文章:

Rails 布局文件中的 Javascript 文档元素

node.js - 具有内容长度限制的签名 URL

mysql - 在 sequelize 中向现有表添加新列

bash 使用陷阱 SIGCHLD 重新启动子进程?

C: 为什么 fork() 后子 block 没有运行?

node.js - 如何使用 chai 和 mocha 测试子进程?

javascript - 在 native 脚本 ListView 中获取录制的项目上下文或索引

javascript - 如何从 JSON 创建树,无需递归和任何库 javascript

javascript - 创建一个接受回调并返回 Promise 的 api

javascript - async.waterfall 和 child_process.execSync 有什么区别?