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) 之后调用它。

原因可能是您过早兑现承诺。