2015-01-02 2 views
0

내가하고있는 일은 내 Parse 데이터베이스에서 ID를로드하고 각 Id에 대해 Facebook Api에 httpRequest를 호출하려고합니다. 문제는 httpRequest가 자체 내부에서 response.success (프로세스가 종료 됨) 호출이 없을 때 작동하지 않는 것 같습니다.Parse Cloud 코드 : httpRequest를 반복하는 방법은 무엇입니까?

Parse.Cloud.define("hello", function(request, response) { 

    var query = new Parse.Query("Location"); 
    query.find({ 
     success: function(results) { 
      console.log(results); 
      for (var i = 0; i < results.length; ++i) 
       var locationId = results[i].get("locationId"); 
       console.log(locationId); 

       Parse.Cloud.httpRequest({ 
       url: 'https://graph.facebook.com/v2.2/'+locationId+'/events?access_token='+accessToken, 
       success: function(httpResponse) { 
        console.log(httpResponse.data); 
        response.success("result"); 
       }, 
       error:function(httpResponse){ 
        console.error(httpResponse.message); 
        response.error("Failed to login"); 
       } 
       }); 
... 

어떤 아이디어 :

이것은 내가 지금까지 가지고 무엇인가?

답변

1

나는 내 자바 스크립트에 대한 것이 아니지만, 이것이 당신이 찾고있는 개념이라고 확신한다. 더 나은 해결책이 존재할 수 있습니다.

var totalResults = results.length; 
var completedResults = 0; 
var completion = function() { 
    // Because you're doing multiple requests, you'll need to figure out how you determine success/failure. ie: Are any failures considered an overall failure? Do you want to pass a more detailed success? 
    response.success("Finished"); 
}; 
for (var i = 0; i < totalResults; ++i) 
     var locationId = results[i].get("locationId"); 
     console.log(locationId); 
     Parse.Cloud.httpRequest({ 
     url: 'https://graph.facebook.com/v2.2/'+locationId+'/events?access_token='+accessToken, 
     success: function(httpResponse) { 
      completedResults++; 
      console.log(httpResponse.data);     
      if (completedResults == totalResults) { 
       completion(); 
      } 
     }, 
     error:function(httpResponse){ 
      completedResults++; 
      console.error(httpResponse.message);     
      if (completedResults == totalResults) { 
       completion(); 
      } 
     } 
     }); 
} 

// ... 
관련 문제