未调用成功/错误
Success / Error not called
我是 javascript 的新手,但我不太确定我是如何错过成功/错误调用的,我查看了一下,它看起来都在调用我。
Parse.Cloud.job("UpdateWeekData", function(request, response) {
var weeks = [];
var weekCount = 0;
var weekQuery = new Parse.Query("WeekList");
weekQuery.find({
success: function(results) {
for (week in results) {
var weekCount = Parse.Query("Schedule");
weekQuery.equalTo("weekObj", week);
weekQuery.count({
success:function(count) {
var max = week.get("maxAppts");
week.set("apptsRemain", (max - count));
week.set("numApptsSch", count);
week.save();
},
error: function(error) {
response.error(error.message);
}
});
}
} ,
error: function(error) {
response.error(error.message);
}
});
});
知道我哪里漏接电话了吗? Parse Cloud Code 表示 "success/error was not called"
因为它是后台作业,您应该调用 status.error()
或 status.success()
,如 this 示例。
您的代码中的问题是,您实际上没有在任何地方调用 status.success()
。您必须在函数完成时始终调用 status.error()
或 status.success()
。为每个循环调用 Parse Query in 会使它变得有点复杂(并且它会产生很多请求!)因为你没有等待 weekQuery.count
完成。另外用count一般是not recommended.
您还应该了解 promises 的工作原理,这样您就知道如何等待查询并在一切完成后调用 error/success - 如果您在查询完成之前调用 success/error,它将被中止。
也许您应该在数据库中实现自己的计数逻辑,或者您可以在 weekObj 等于任何结果的地方进行查询,找到所有对象,然后对于每个检索到的对象,您可以获得 "weekObj" 字段以了解哪个结果是否等于。但请记住,默认情况下查找 returns 100 个对象,最多 1000 个对象(如果您使用的是 parse.com 而不是 Parse Server):
weekQuery.equalTo("weekObj", results);
weekQuery.find();
我是 javascript 的新手,但我不太确定我是如何错过成功/错误调用的,我查看了一下,它看起来都在调用我。
Parse.Cloud.job("UpdateWeekData", function(request, response) {
var weeks = [];
var weekCount = 0;
var weekQuery = new Parse.Query("WeekList");
weekQuery.find({
success: function(results) {
for (week in results) {
var weekCount = Parse.Query("Schedule");
weekQuery.equalTo("weekObj", week);
weekQuery.count({
success:function(count) {
var max = week.get("maxAppts");
week.set("apptsRemain", (max - count));
week.set("numApptsSch", count);
week.save();
},
error: function(error) {
response.error(error.message);
}
});
}
} ,
error: function(error) {
response.error(error.message);
}
});
});
知道我哪里漏接电话了吗? Parse Cloud Code 表示 "success/error was not called"
因为它是后台作业,您应该调用 status.error()
或 status.success()
,如 this 示例。
您的代码中的问题是,您实际上没有在任何地方调用 status.success()
。您必须在函数完成时始终调用 status.error()
或 status.success()
。为每个循环调用 Parse Query in 会使它变得有点复杂(并且它会产生很多请求!)因为你没有等待 weekQuery.count
完成。另外用count一般是not recommended.
您还应该了解 promises 的工作原理,这样您就知道如何等待查询并在一切完成后调用 error/success - 如果您在查询完成之前调用 success/error,它将被中止。
也许您应该在数据库中实现自己的计数逻辑,或者您可以在 weekObj 等于任何结果的地方进行查询,找到所有对象,然后对于每个检索到的对象,您可以获得 "weekObj" 字段以了解哪个结果是否等于。但请记住,默认情况下查找 returns 100 个对象,最多 1000 个对象(如果您使用的是 parse.com 而不是 Parse Server):
weekQuery.equalTo("weekObj", results);
weekQuery.find();