gpt4 book ai didi

javascript - 保留 proc.stdout.on() 结果?

转载 作者:行者123 更新时间:2023-11-30 18:45:32 27 4
gpt4 key购买 nike

总的来说,我对 JavaScript 非常陌生,尤其是在服务器端。我正在使用 node.js 并具有以下代码:

var results = modulex.commandy(args)

modulex 看起来像:

export.commandy = function(args) {
var output;
var pingproc = spawn('ping', ['-c 1', 'host.com']);
pingproc.stdout.on('data', function (data) {
output += data;
});

return output;
}

如果我想让 commandy 函数从进程返回 stdout 的结果,我该怎么做? commandy 函数不会在调用 stdout 的回调之前完成吗?在上面的代码中,output 总是undefined

最佳答案

问题是您在触发事件之前返回结果。该函数将立即返回,但事件尚未触发 pingproc.stdout.on('data'); 您需要使用回调。像这样的东西:

modulex.commandy(function(output) {/*无论你需要什么,这里输出 */});

然后

export.commandy = function(args, callback) {
var output;
var pingproc = spawn('ping', ['-c 1', 'host.com']);
pingproc.stdout.on('data', function (data) {
callback(data);
});
}

这将在每次收到数据时调用您在 function(output) {} 中传递的函数。或者,您可以在收到一定数量的数据后或调用结束事件后调用回调。

关于javascript - 保留 proc.stdout.on() 结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5616372/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com