我面对的似乎是一个常见的问题,然而,我真的无法弄清楚如何解决它。
我调用一个函数发出一个GET请求,解析返回的JSON,然后(据说)返回一个Promise,我用它来打印解析的JSON数据。但是,当我尝试这样做时,我收到了此问题标题中描述的错误。我有两个文件,我正在使用。第一个简单地从第二个函数调用一个函数,并尝试打印返回值(并获取错误)。
第一档:
var secondFile = require('./test');
secondFile.testFunc("some stuff").then(function(res) {
console.log(res);
})
第二个文件(test.js):
module.exports = {
testFunc : function(address) {
var params = {
q: address,
format: "json"
}
var baseUrl = "http://google.com";
rp({url: baseUrl,
qs: params,
method: "GET"})
.then(function(body) {
var parsedBody = JSON.parse(body);
var result = {one: parsedBody[0], two: parseBody[1]};
return new Promise(function(resolve, reject) {
resolve(result);
});
}).catch(function(err) {
console.log(err);
});
}
}
非常感谢任何帮助。
答案 0 :(得分:6)
testFunc
没有return
语句,因此返回undefined
。
如果您想获取rp
的返回值(似乎是一个承诺)然后从testFunc
返回,那么您需要添加return
语句。
return rp({url: baseUrl,