gpt4 book ai didi

javascript - 同步访问两个远程资源并在组合响应中输出 - NodeJS

转载 作者:行者123 更新时间:2023-11-30 16:22:49 24 4
gpt4 key购买 nike

简而言之。

我需要访问两个或多个远程资源提要,将其合并并显示为来 self 的 nodejs 服务的一个结果。


详细

我需要从多个 vendor 处获取提要(数量可能会根据存储在仪表板对象中的内容而有所不同)

连接它们,进行一些其他数据操作,最后将内容显示为一个数组。

var allFeeds = [];
dashboard.providers.forEach(function(provider) {
if (provider.source === 'facebook') {
...
fb.getFeeds(provider.data.id, function(feeds) {
...
Array.prototype.push.apply(allFeeds, feeds);
});
} else if (provider.source === 'google') {
...
google.getFeeds(provider.data.id, function(feeds) {
...
Array.prototype.push.apply(allFeeds, feeds);
});
} else if (provider.source === 'twitter') {
...
twitter.getFeeds(provider.data.id, function(feeds) {
...
Array.prototype.push.apply(allFeeds, feeds);
});
}
});
...
// other data manipulations
...
res.json(allFeeds);

由于 nodejs 具有异步网络调用,我该如何实现这一点?

最佳答案

您可以使用 async .

var async = require('async');
var allFeeds = [];
var tasks = [];

dashboard.providers.forEach(function (provider) {
if (provider.source === 'facebook') {
...
tasks.push(function (done) {
fb.getFeeds(provider.data.id, function (feeds) {
...
Array.prototype.push.apply(allFeeds, feeds);
done();
});
});
} else if (provider.source === 'google') {
...
tasks.push(function (done) {
google.getFeeds(provider.data.id, function (feeds) {
...
Array.prototype.push.apply(allFeeds, feeds);
done();
});
});
} else if (provider.source === 'twitter') {
...
tasks.push(function (done) {
twitter.getFeeds(provider.data.id, function (feeds) {
...
Array.prototype.push.apply(allFeeds, feeds);
done();
});
});
}
});

async.parallel(tasks, function () {
...
// other data manupulations
...
res.json(allFeeds);
});

您还可以查看此 post我写信是为了构建您的代码以更好地管理异步操作

关于javascript - 同步访问两个远程资源并在组合响应中输出 - NodeJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34507727/

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