在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,计数是不成功还是失败?
答案 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。