2015-06-02 7 views
0

Я создаю функцию CloudCode, которая возвращает всех пользователей, которые соответствуют моим настройкам. В этой функции я просматриваю список пользователей, и мне нужно получить их настройки, чтобы проверить, должен ли я их возвращать. Единственная проблема заключается в том, что цикл не ждет завершения запроса.Сделайте запрос для каждого элемента цикла и дождитесь результата

Как я могу получить объект Settings для каждого пользователя в цикле, проверить правильность настроек и затем вставить их в массив и вернуть массив, когда цикл закончен?

код я использую сейчас:

for (var i = 0; i < connectResults.length; i++) { 
    var connect = connectResults[i]; 
    for (var j = 0; j < matchResults.length; j++) { 
     var match = matchResults[j]; 

     if (connect.get("sendBy").id == match.id) { 
      var indexOf = matchResults.indexOf(match); 
      matchResults.splice(indexOf, 1); 
     } else if (connect.get("receivedBy").id == match.id) { 
      var indexOf = matchResults.indexOf(match); 
      matchResults.splice(indexOf, 1); 
     } 
     if(typeof match.get("settings") != 'undefined') { 
      var settingsQuery = new Parse.Query("Settings"); 
      settingsQuery.equalsTo("objectId",match.get("settings").id); 
      settingsQuery.find({ 
       success: function(setting) { 
        console.log(match.get("username") + " " + setting.get("radius")); 
       } 
      }); 
     } 
    } 
} 
response.success(matchResults); 

ответ

0

Вместо запросов всех пользователей и пытается соответствовать их настройки, я бы вместо запроса всех пользователей с помощью установки в качестве ограничения запроса. Другими словами, сообщите в базу данных, что вы хотите, чтобы она вернула всех пользователей с правильными настройками.

var usersQuery = new Parse.Query("Users"); 
//Below, "settings" is the column name in your Users table 
usersQuery.equalTo("settings", /* Settings value you are matching */); 
usersQuery.find({ 
    //... 
}); 

Вам может понадобиться containedIn запрос, если имеется несколько возможностей настройки. См. Документы для примера: https://parse.com/docs/js/guide#queries-query-constraints

Удачи вам! :)

Смежные вопросы