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()=>配置输出。
答案 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);
});
});