gpt4 book ai didi

Node.js:对象值作为 child_process.exec 的标准输出

转载 作者:搜寻专家 更新时间:2023-11-01 00:34:10 26 4
gpt4 key购买 nike

我是 Node 的新手并且在它的一些非阻塞元素上绊倒了。我正在尝试创建一个对象并将其元素之一作为返回 child_process.exec 标准输出的函数,如下所示:

var exec = require('child_process').exec;
var myObj = {};

myObj.list = function(){
var result;
exec("ls -al", function (error, stdout, stderr) {
result = stdout;
});
return result;
}
console.log('Ta da : '+myObj.list);

我认为 myObj.list 在被设置为 stdout 之前返回了 result,但我不知道如何制作它等待或为它做一个回调。感谢您的帮助!

最佳答案

您不能直接返回该值,因为它暂时不可用。因此,您需要使用回调而不是返回值,这意味着将调用代码稍微翻转一下。

var exec = require('child_process').exec;
var myObj = {};

myObj.list = function(callback){
var result;
exec("ls -al", function (error, stdout, stderr) {
callback(stdout);
});
// No return at all!
}
// Instead of taking a return we pass a callback
// which receives the value and carries on our computation.
myObj.list(function (stdout) {
console.log('Ta da : '+ stdout);
});

在实际代码中,您可能希望回调将错误作为第一个参数,您不必这样做,但这是在 Node.JS 中完成事情的正常方式。

关于Node.js:对象值作为 child_process.exec 的标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10270857/

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