我遇到了Node.js的严重问题 我正在开发一个API,使用GraphQL从Facebook数据库中获取数据,然后使用选定的数据发回JSON。
当我通过响应数组迭代(使用for循环)选择有用的数据时,问题出现了,我不知道如何获取所有数据然后将其发送到客户端。 我认为在每次迭代时调用回调都会很好,但它没有解决问题
以下是我的API
的代码 从GraphQL读取数据
FB.api('me / feed',...)返回所有数据的数组
第二个调用返回单个帖子的详细信息,这是最重要的部分(我必须以json格式将这些详细信息的数组返回给客户端)
module.exports = function (start, end, callback) {
if (start > end) throw 'Start is greater than end';
FB.api('me/feed', function (res) {
// Error handling
if (!res || res.error) {
throw 'FB error occurred: ' + res.error;
}
console.log('FB: OK');
for (let i = start; i < res.data.length && i != end; i++) {
FB.api(res.data[i].id + '/attachments', function(post) {
callback({
id: res.data[i].id,
type: post.data[0].type,
postDesc: res.data[i].message.split('\n\n')[0],
postUrl: post.data[0].url,
imagePreviewUrl: post.data[0].media.image.src
});
});
}
});
}