函数返回值中的函数

时间:2016-04-19 08:06:47

标签: node.js function return-value

import.js

exports.getConfig = function() {
  return api.getConfig();

};

test.js

// Aanmaken lightBridge
obj = reflector.getObj();
console.log(obj);

// Toon alle lichten
obj.getConfig().then(function(config) {
    console.log(config);
}).done();

在最后一个片段中,它正在使用的功能 当我调用getConfig()时,我想要输出变量config。问题是,当我想记录变量测试时,我收到了undefined。

如果我是console.log(config)而不是return config;它完美地运作。看起来很奇怪。

当我想使用它时的结果就像varia.getConfig()=>配置输出。

2 个答案:

答案 0 :(得分:1)

测试仅存在于您的函数外面。你可以尝试这样的东西,但它可能很脏。

    var test;
    exports.getConfig = function() {
      api.getConfig(function(err, config) {
        if (err) throw err;
        test = config;
    });

答案 1 :(得分:1)

听起来你正在尝试使用异步函数,就好像它是同步的一样。你不能这样做。您可以做的是从getConfig返回承诺。

exports.getConfig = function() {
  return api.getConfig();
};

然后您的模块可以像这样使用:

const myModule = require('my-module');
myModule.getConfig().then(function(config) {
    console.log(config);
});

从评论中听起来就像是在使用Express。如果您想使用Express在HTTP响应中发送config,可以执行以下操作:

app.get('/config', function(request, response) {
    myModule.getConfig().then(function(config) {
        response.send(config);
    });
});