Javascript 将rss到json提要包含到变量中

Javascript 将rss到json提要包含到变量中,javascript,Javascript,这是一个非常初级的问题。 npm有rss到json的包。这将为馈入控制台提供: var Feed = require('rss-to-json'); Feed.load('https://learnstartup.net/feed/', function(err, rss){ console.log(rss); }); 但我希望feed包含一个变量,以后可以这样使用: var Feed = require('rss-to-json'); var myfeed = Feed.load('

这是一个非常初级的问题。 npm有rss到json的包。这将为馈入控制台提供:

var Feed = require('rss-to-json');
Feed.load('https://learnstartup.net/feed/', function(err, rss){
    console.log(rss);
});
但我希望feed包含一个变量,以后可以这样使用:

var Feed = require('rss-to-json');
var myfeed = Feed.load('https://learnstartup.net/feed/', function(err, rss){ 
});
console.log(myfeed);
console.log(myfeed.items[0].title);

现在,两个console.log都会给出错误。如何在变量中获取json提要,然后使用该变量?我可能对load函数调用做了一些错误。

load函数不仅将变量封装到新的作用域中,而且还异步运行。这意味着,在调用load之后立即声明的任何代码实际上都将在运行load回调中的代码之前运行(只有在加载rss提要之后才会运行)

这意味着任何依赖于返回的代码都应该在回调函数中。像这样:

var Feed=require('rss-to-json');
Feed.load('https://learnstartup.net/feed/,函数(err,rss){
console.log(rss);
console.log(rss.items[0].title);
});
但是,如果您有许多嵌套回调函数,您可以看到这种嵌套如何导致可读性问题。因此,根据您的运行时,您可以利用ES6语法,它引入了
async/await
的概念,基本上说,“这个函数是asnychronous的,所以请等到它完成后再继续。”如是:

var Feed=require('rss-to-json');
(异步函数(){
var myfeed=等待新承诺((解决、拒绝)=>{
Feed.load('https://learnstartup.net/feed/,函数(err,rss){
if(err){返回拒绝(err)}
解析(rss)
});
});
console.log(myfeed);
console.log(myfeed.items[0].title);
})();
我应该指出,后面的选项有点复杂,因为方便的
await
关键字只能在
async
函数中使用,所以我必须将代码包装在iLife中。如果需要的话,我很乐意提供更多的清晰性,但是如果你是新的,我的建议是从选项1开始,并考虑更多地阅读这些其他概念: