这是我的第一个 JavaScript 和 Node 项目,我被卡住了……
我正在尝试调用一个返回一组 Post ID 的 REST API ......并基于一组检索到的 ID 我试图调用另一个 API,该 API 从第一个 API 返回每个 ID 的详细信息。该代码使用 Facebook-NodeSDK 提供的 Facebook API。
我遇到的问题是第二个 API 在 FOR 循环中触发……。据我了解,for循环异步执行每个请求……。我可以看到两个查询都在执行,但是我不知道如何捕获第二个 for 循环的结尾以将最终结果返回给用户……</p>
以下是代码……</p>
exports.getFeeds = function(req, res) {
var posts = [];
FB.setAccessToken(’SOME TOKEN');
var resultLength = 0;
FB.api(
//ARG #1 FQL Statement
'fql', { q: 'SELECT post_id FROM stream WHERE filter_key = "others"' },
//ARG #2 passing argument as a anonymous function with parameter result
function (result)
{
if(!result || result.error) {
console.log(!result ? 'error occurred' : result.error);
return;
} //closing if handling error in this block
var feedObj
console.log(result.data);
console.log(result.data.length);
for (var i = 0; i<resultLengthj ; i++) {
(function(i) {
feedObj = {};
FB.api( result.data[ i].post_id, { fields: ['name', 'description', 'full_picture' ] },
// fbPost is data returned by query
function (fbPost) {
if(!fbPost || fbPost.error) {
console.log(!fbPost ? 'error occurred' : result.error);
return;
}
// else
feedObj=fbPost;
posts.push(feedObj);
});
})(i);
}// end for
}//CLOSE ARG#2 Function
);// close FB.api Function
注意我需要打电话...... res.Send(post)......。并尝试在多个地方调用它,但无法获取所有帖子……我已从上面的代码中删除了控制台语句……这表明正在检索数据……
非常感谢您的帮助和关注......