我喜欢将 nodejs 的 exec 集成到一个自定义函数中,以处理这个函数中的所有错误。
const exec = require('child_process').exec;
function os_func() {
this.execCommand = function(cmd) {
var ret;
exec(cmd, (error, stdout, stderr) => {
if (error) {
console.error(`exec error: ${error}`);
return;
}
ret = stdout;
});
return ret;
}
}
var os = new os_func();
此函数返回 undefined,因为返回值时 exec 尚未完成。 我该如何解决?我可以强制函数等待 exec 吗?
最佳答案
您可以将 promise 用作:
const exec = require('child_process').exec;
function os_func() {
this.execCommand = function (cmd) {
return new Promise((resolve, reject)=> {
exec(cmd, (error, stdout, stderr) => {
if (error) {
reject(error);
return;
}
resolve(stdout)
});
})
}
}
var os = new os_func();
os.execCommand('pwd').then(res=> {
console.log("os >>>", res);
}).catch(err=> {
console.log("os >>>", err);
})
关于javascript - nodejs 在函数中等待 exec,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41037042/