在这里,我有一个非常简单的功能,试图从r / askreddit获取帖子。
const simple_get = require('simple-get');
function get_post() {
simple_get('https://reddit.com/r/askreddit/random.json', (err, res) => {
if (err) {
console.log(err);
}
let body = '';
res.on('data', (chunk) => {
body += chunk;
});
res.on('end', () => {
var post = JSON.parse(JSON.stringify(eval('(' + body + ')')))
console.log(post);
return post;
});
});
}
console.log(get_post());
该函数返回undefined。但是,在第17行(在函数内部)输出post
时,它将返回正确的对象。这是一些日志:
未定义..... reddit.js:23
Array(2)[Object,Object] ..... reddit.js:17
除了简单地返回post
外,我还尝试制作一个全局变量并将其设置为post
。那也没有用。我需要它作为一个函数,因此我可以在while循环中对其进行设置,以进行诸如获取新帖子(如果是mod帖子)之类的事情,因此,也欢迎您选择它。
在MacOS Mojave 10.14.6上具有简单获取3.1.0的节点版本10.15.0。
感谢您的帮助:)
答案 0 :(得分:0)
simple_get
是一个异步函数,这意味着您的代码在实际收到任何响应之前先经过console.log()