javascript - Node.js exec 事件未在 Promise 内触发

标签 javascript node.js promise exec child-process

我有这个简单的代码,正如您所看到的,这是一个 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);
          });
    });

如果我从一切正常的周围删除 promise ,则 on 事件永远不会被触发

你有什么线索吗?

最佳答案

尝试将 resolve 移出回调函数,并在 console.log(data) 之后调用它。

原因可能是因为你过早地兑现了你的 promise 。

关于javascript - Node.js exec 事件未在 Promise 内触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35897706/

相关文章:

javascript - 困扰我一整天的 javascript Promise 问题

javascript - ReplaceWith() 不返回标签

JavaScript 事件 onblur 在 Firefox 中的 onfocus 之前触发

javascript - 没有正文无法转换节点

node.js - 没有任何消息,node.js进程崩溃

node.js - fs.writeSync(1, "a string") 在 Node.js 中意味着什么?

javascript - 在 Chrome 中将对象记录到控制台的解决方法

javascript - 当 "npm install"退出时 "node_modules"会做什么?

javascript - 从 Promise 解析调用传回数据

javascript - 在使用 Promise.then AngularJS foreach 之后仅显示一条消息