无法解决如何将Parse.com javascript sdk查询转换为循环

时间:2014-11-19 21:51:02

标签: javascript jquery parse-platform

修改 谢谢@ eth3lbert 它仍然需要写24个itterations ... 这是我最近的尝试......

var animalsMarkedAt = "animalMarkedAt"
var queryMarkedPerHour = new Parse.Query("locationDeets");
y = 0
for ( var i = 0; i < 24; i++ ) {
    queryMarkedPerHour.equalTo("dayMonthYear", dayNowMonthNowYearNowInspectorSelected) &&         queryMarkedPerHour.equalTo("hourAnimalMarked", i);
queryMarkedPerHour.count({
        success: function(j){
            y=y+1
            console.log(animalsMarkedAt + y + "oclock " + j);
        }
    })

}

输出: animalsMarkedAt1oclock 1 animalsMarkedAt2oclock 5 animalsMarkedAt3oclock 2 等等(凌晨1点1号动物被标记,凌晨2点标记5只动物,在凌晨3点标记2只动物) 我现在需要做的是将计数分配给相关名称作为变量,例如animalsMarkedAt1oclock should = 1 我无法确定如何分配它。感觉很亲密。 干杯 丹

原始问题: 我正在使用Parse.com Javascript SDK,需要将以下内容转换为循环。目前有24个。每小时一个。 我希望有人可以帮助我的代码严重膨胀。

var queryMarkedPerHour = new Parse.Query("locationDeets");
queryMarkedPerHour.equalTo("dayMonthYear", dayNowMonthNowYearNowInspectorSelected) && queryMarkedPerHour.equalTo("hourAnimalMarked", 7);
queryMarkedPerHour.count({
  success: function(sevenMarked){
    queryMarkedPerHour.equalTo("dayMonthYear", dayNowMonthNowYearNowInspectorSelected) && queryMarkedPerHour.equalTo("hourAnimalMarked", 8);
    queryMarkedPerHour.count({
      success: function(eightMarked){
        queryMarkedPerHour.equalTo("dayMonthYear", dayNowMonthNowYearNowInspectorSelected) && queryMarkedPerHour.equalTo("hourAnimalMarked", 9);
        queryMarkedPerHour.count({
          success: function(nineMarked){        
            //Do the Stuff
          }
        })
       }
     })
    }
  })

1 个答案:

答案 0 :(得分:0)

您可以尝试Promises让您的代码更清晰。

var queryMarkedPerHour = new Parse.Query("locationDeets");
queryMarkedPerHour.equalTo("dayMonthYear", dayNowMonthNowYearNowInspectorSelected);
queryMarkedPerHour.equalTo("hourAnimalMarked", 7);
return queryMarkedPerHour.count()
    .then(function (sevenMarked) {
        queryMarkedPerHour.equalTo("dayMonthYear", dayNowMonthNowYearNowInspectorSelected);
        queryMarkedPerHour.equalTo("hourAnimalMarked", 8);
        return queryMarkedPerHour.count();
    })
    .then(function (eightMarked) {
        queryMarkedPerHour.equalTo("dayMonthYear", dayNowMonthNowYearNowInspectorSelected);
        queryMarkedPerHour.equalTo("hourAnimalMarked", 9);
        return queryMarkedPerHour.count();
    });// if need just keep chaining

REF。 Promises