gpt4 book ai didi

node.js - 在 Node js 的 async.forEach 中返回值?

转载 作者:搜寻专家 更新时间:2023-10-31 22:40:06 24 4
gpt4 key购买 nike

我开始学习 node.js,并将多个 rss 提要聚合到一个提要中,我正在提取这些提要,然后根据我提取的数据重新创建一个独特的提要。

因此,为了异步处理多个 http 请求,我使用 https://github.com/caolan/async#forEach哪个完成了工作。

但我不知道如何返回一个值(在我的例子中是 rss xml 提要)。

这是我的代码:

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;
}
);
}

使用 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
});

关于node.js - 在 Node js 的 async.forEach 中返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13130667/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com