【发布时间】:2017-08-29 04:33:16
【问题描述】:
我可以让这个函数在一个文件中工作,但我想通过分成多个文件来保持干净。
// library.js file
module.exports = {
get: () =>{
return new Promise((reject, resolve) =>{
return resolve(https.get('https://api.instagram.com/v1/users/self/?access_token=' + cred.access_token, (res) =>{
res.setEncoding('utf8');
return res.on('data', (data) =>{
return data;
});
}));
});
}
}
我尝试记录此内容,但没有显示任何内容?
// server.js file
igLib.get().then((data) => {
console.log("testing: " + data);
})
但是,如果我只是做一个简单的日志......
// server.js file
console.log(igLib.get());
我以某种方式获得了没有res.setEncoding('utf8') 的数据。
有什么建议吗?
更新: 我无法得到工作的承诺,我很抱歉那些为我的问题提供了很好答案的人,但我继续使用 request-promise 模块。看起来是这样的:
// library.js file
var instagramSelfUrl = 'https://api.instagram.com/v1/users/self/?access_token=' + cred.access_token;
module.exports = {
get: () =>{
return rp(instagramSelfUrl).then((res) =>{
return res;
});
}
}
这是我 console.log 的地方:
// server.js file
igLib.get().then((data) =>{
console.log(data);
});
它更简单并且有效。如果除了使用模块之外还有解决问题的方法,请告知并发布!感谢所有发帖和帮助的人!
【问题讨论】:
-
单独的文件!嗯,为什么不使用 js 类呢
-
@user889030 文件和类有什么关系?!
-
您的问题是您立即使用来自
https.get(即undefined)的返回值解决您的承诺,而不是使用异步回调中的data解决
标签: javascript express promise