Android var exec=require(';子进程';).exec;连续运行的命令的回调
我正试图用node.js为adb logcat命令编写一个接口,需要一些帮助,让我的函数执行连续和异步回调。此命令生成常量输出,我希望在生成回调函数时将其发送到回调函数(不是在让它运行一段时间后,然后停止它)。node.js是否可以实现这一点?如果可以,我该如何实现 这是到目前为止我的代码Android var exec=require(';子进程';).exec;连续运行的命令的回调,android,node.js,adb,Android,Node.js,Adb,我正试图用node.js为adb logcat命令编写一个接口,需要一些帮助,让我的函数执行连续和异步回调。此命令生成常量输出,我希望在生成回调函数时将其发送到回调函数(不是在让它运行一段时间后,然后停止它)。node.js是否可以实现这一点?如果可以,我该如何实现 这是到目前为止我的代码 exports.logcat = function(options, callback){ var logcatCmd = "adb logcat" + options; console.lo
exports.logcat = function(options, callback){
var logcatCmd = "adb logcat" + options;
console.log("sending command: " + logcatCmd);
exec(logcatCmd, function(error, stdout, stderr){
if(error !== null){
console.log("encountered error = " + error);
}
callback(stdout);
});
};
简言之,没有;您不能查看用于新输出的shell命令,就像您可以从更改的文件或套接字流式传输数据一样 如果它生成常量输出,则更可能只是从某个日志文件读取并打印
它在屏幕上显示。您应该找出它从哪个文件获取数据,并使用
fs.watch
和readableStream
连续获取数据流。如果我运行命令将该数据发送到一个文件,即adb logcat>myfile.txt,我可以使用fs.watch不断检查该文件的更改吗,该命令不会重复运行,您可能必须将其放入setInterval
中。但是如果你能做到的话,是的,那就行了。但这与在循环中运行exec
没有什么不同,因为fs.watch
查找上次访问/修改时间的变化,而不是内容的变化。