解析查询的javascript计数方法

时间:2015-01-13 19:36:09

标签: javascript parse-platform pfquery

在Parse的javascript API中,如果没有返回任何对象,count方法是否会执行任何操作?我正在尝试查询我刚刚添加的新表,而且我似乎无法获得返回结果的查询。

var contactObj = Parse.Object.extend("Contact");
var contactQuery = new Parse.Query(contactObj);
contactQuery.equalTo("phone", req.body.From);

    contactQuery.count({
      success: function(number) {
        // There are number instances of MyClass.
        console.log("something");
      },
      error: function(error) {
    // error is an instance of Parse.Error.
            console.log("error");
    }
});

在此代码中,运行时,不会收到console.logs,但我调用的封闭方法会打印它已运行。如果计数为0,计数是不成功还是失败?

2 个答案:

答案 0 :(得分:1)

您缺少response.success和response.error调用,但控制台日志仍在编写。 见下文

您的确切代码段在工作站控制台中返回“运行时未调用成功/错误”。 但仍然在解析门户控制台中,您会看到“某事”输出......

本地计算机中的输出解析控制台:

{"code":141,"error":"success/error was not called"}

Logs中的输出解析门户

Failed with: success/error was not called
I2015-01-14T09:28:26.174Z] something

我在下面添加了两行:

response.success("something success");
response.error("something error");

所以实际代码将如下所示:

Parse.Cloud.define("StackOverflowTesting", function(request, response) {
   var contactObj = Parse.Object.extend("Contact");
   var contactQuery = new Parse.Query(contactObj);
   contactQuery.equalTo("phone", req.body.From);
   contactQuery.count({
         success: function(number) {
           // There are number instances of MyClass.
           console.log("something success console");
           response.success("something success");
         },
         error: function(error) {
         // error is an instance of Parse.Error.
             console.log("something error console");
             response.error("something error");
     }
   });

});

输出 工作站控制台:

{"result":"something success"}

解析门户日志:

Result: something success 
I2015-01-14T09:29:54.355Z] something success console

答案 1 :(得分:0)

我遇到类似的问题,其中没有从成功和错误块调用console.logs。这是由于查询后的无限循环引起的。这种东西 -

    var c = 0;
    var query = new Parse.Query("XXXXX");
    query.equalTo("YYYY","abc");
    query.count({
                success: function(count) {
                         c += 1;
                         console.log("success");
                },
                error: function(error) {
                       c += 1;
                       console.log("failure");
                }
                });
   while (c < 1){
   }
   ..........

Node.js是异步的,但它也是单线程的。确保没有任何阻止执行的代码块。

此外,即使没有,query.count也会成功。结果是0。