これは私の最初の JavaScript & Node プロジェクトで、行き詰まっています….
一連の投稿 ID を返す REST API を呼び出そうとしています...取得した ID のセットに基づいて、最初の API から各 ID の詳細を返す別の API を呼び出そうとしています。コードは、Facebook-NodeSDK が提供する Facebook API を使用します。
私が抱えている問題は、2 番目の API が FOR ループで起動することです…. 私が理解しているように、for ループは各リクエストを非同期的に実行します…. 両方のクエリが実行されているのを確認できますが、2 番目の 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)…。いくつかの場所でそれを呼び出そうとしましたが、すべての投稿を取得できません...上記のコードからコンソールステートメントを削除しました...データが取得されていることを示しています...
あなたの助けと注意をありがとう....