Promise在node.js中返回undefined

时间:2016-01-14 21:32:22

标签: javascript node.js asynchronous promise

我是node.js / JavaScript的新手,所以请耐心等待。我正在实现一个名为 module.js 的节点模块,如下所示:

function run(cmd, arg) {
    var exec = require('child_process').exec;

    return new Promise(function(resolve, reject) {
        exec(cmd + ' ' + arg, function(error, stdout, stderr) { 
            if (error) 
                reject(error);
            else 
                resolve(stdout); 
        });
    });
}

function getCon1() {
    run('ls', '')
        .then(function(result) {
            return result;
        }, function(err) {
            console.log(err);
    });
}
exports.getCon1 = getCon1;

function getCon2() {
    run('ls', '-a')
        .then(function(result) {
            return result;
        }, function(err) {
            console.log(err);
    });
}
exports.getCon2 = getCon2;

我的main.js,我正在使用我的模块,看起来像这样:

var mod = require('./module');

console.log(mod.getCon1());
console.log(mod.getCon2());

我的问题是我的两个getter函数在 main.js 中返回undefined。对我来说,这有点令人恼火,因为我认为这正是承诺的目的:当then()函数完成时,getter函数在run()返回。

有人能帮我快点吗?谢谢!

0 个答案:

没有答案