我开始学习node.js,并在一个中汇总多个rss feed,我正在研究feed,然后从我想要的数据中重新创建一个唯一的feed.
因此,为了异步处理多个http请求,我使用https://github.com/caolan/async#forEach来完成这项工作.
但我无法弄清楚如何返回一个值(在我的情况下是rss xml feed).
这是我的代码:
function aggregate(topic) {
async.forEach(topic.feeds,
function(item, callback) {
parseAndProcessFeed(item, callback);
},
function(err) {
// sort items by date
items.sort(function(a, b) {
return (Date.parse(b.date) - Date.parse(a.name));
});
var rssFeed = createAggregatedFeed();
console.log(rssFeed);
return rssFeed;
}
);
}
Run Code Online (Sandbox Code Playgroud)
与console.log(rssFeed)我可以看到RSS提要,所以我觉得我失去了一些东西明显.
我怎样才能返回rssFeed值?
让我重新坐下的一些帮助会很棒,谢谢!
泽维尔
您无法从异步函数返回值.您需要将其传递给回调函数.像这样:
function aggregate(topic, callback) {
async.forEach(topic.feeds,
function(item, callback) {
parseAndProcessFeed(item, callback);
},
function(err) {
// sort items by date
items.sort(function(a, b) {
return (Date.parse(b.date) - Date.parse(a.name));
});
var rssFeed = createAggregatedFeed();
callback(err, rssFeed);
}
);
}
aggregate(someTopic, function(err, result) {
// here is result of aggregate
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5464 次 |
| 最近记录: |