Node.js exec 事件未在 Promise 中触发
Node.js exec event not firing inside Promise
我有这个简单的代码,如您所见,它是一个承诺:
var exec = require('child_process').exec;
return new Promise(function(resolve, reject) {
var x = exec(`cd /maps && ls -la`, {}, function(err, stdout, stderr) {
if (err || stderr) {
reject(err + stderr);
}
resolve(stdout);
});
x.stdout.on('data', function (data) {
console.log(data);
});
});
on
事件永远不会被触发,而如果我从周围删除 promise 一切正常
你有什么线索吗?
尝试将 resolve
移出回调函数,并在 console.log(data)
之后调用它。
原因可能是您过早兑现承诺。
我有这个简单的代码,如您所见,它是一个承诺:
var exec = require('child_process').exec;
return new Promise(function(resolve, reject) {
var x = exec(`cd /maps && ls -la`, {}, function(err, stdout, stderr) {
if (err || stderr) {
reject(err + stderr);
}
resolve(stdout);
});
x.stdout.on('data', function (data) {
console.log(data);
});
});
on
事件永远不会被触发,而如果我从周围删除 promise 一切正常
你有什么线索吗?
尝试将 resolve
移出回调函数,并在 console.log(data)
之后调用它。
原因可能是您过早兑现承诺。