解析查询等于不工作
Parse Query equalTo not Working
我正在尝试使用刚刚从另一个查询中获得的参数(名为:"lesson")简单地查询我的数据库过滤结果。
问题是,当我尝试使用 "alert" 命令课程的值进行打印时,它显示:未定义。
奇怪的是,当我将 "lesson" 放入元组的字段中时,它起作用了。
特别是行
obj.set("student", lesson);
添加只是为了调试目的,实际上将一致的值写入 table。
这是完整的代码:
Parse.Cloud.job("checkingTwoTables", function(request, response) {
Parse.Cloud.useMasterKey();
var stud,lesson;
//select first student of the list and check for his enters
var wholeTable = new Parse.Query("enter");
wholeTable.find({
success: function(result) {
if(result.length != 0)
{
//pick student name and lesson we're interested in
stud = result[0].get("student");
lesson = result[0].get("lesson");
}
else {}
},
error: function(error) {
console.log("failed");
}
});
alert("lesson value:" + lesson);
var selectionQuery = new Parse.Query("enter");
selectionQuery.equalTo("lesson", "cns");
selectionQuery.find({
success: function(results) {
for (var i = 0; i < results.length; i++)
{
var obj = results[i];
obj.set("raggiunto", 77);
obj.set("student", lesson); // <<-------HERE IS THE ISSUE
obj.save(null,{
success: function (object) {
response.success(object);
},
error: function (object, error) {
response.error(error);
}
});
}
},
error: function(error) {
console.log("failed");
}
}); //code continues...
您遇到 this 确切的问题。
.find()
正在向服务器发出请求。您无法保证它何时完成,因此您无法保证您的第二个查询将在第一个查询完成后 运行。因此,当您的第二个查询 运行s 时,第一个查询可能仍未检索到 lesson
的值,因此 "undefined".
解决方案是将第二个查询移动到第一个查询的 success
块内。
我正在尝试使用刚刚从另一个查询中获得的参数(名为:"lesson")简单地查询我的数据库过滤结果。
问题是,当我尝试使用 "alert" 命令课程的值进行打印时,它显示:未定义。
奇怪的是,当我将 "lesson" 放入元组的字段中时,它起作用了。
特别是行
obj.set("student", lesson);
添加只是为了调试目的,实际上将一致的值写入 table。
这是完整的代码:
Parse.Cloud.job("checkingTwoTables", function(request, response) {
Parse.Cloud.useMasterKey();
var stud,lesson;
//select first student of the list and check for his enters
var wholeTable = new Parse.Query("enter");
wholeTable.find({
success: function(result) {
if(result.length != 0)
{
//pick student name and lesson we're interested in
stud = result[0].get("student");
lesson = result[0].get("lesson");
}
else {}
},
error: function(error) {
console.log("failed");
}
});
alert("lesson value:" + lesson);
var selectionQuery = new Parse.Query("enter");
selectionQuery.equalTo("lesson", "cns");
selectionQuery.find({
success: function(results) {
for (var i = 0; i < results.length; i++)
{
var obj = results[i];
obj.set("raggiunto", 77);
obj.set("student", lesson); // <<-------HERE IS THE ISSUE
obj.save(null,{
success: function (object) {
response.success(object);
},
error: function (object, error) {
response.error(error);
}
});
}
},
error: function(error) {
console.log("failed");
}
}); //code continues...
您遇到 this 确切的问题。
.find()
正在向服务器发出请求。您无法保证它何时完成,因此您无法保证您的第二个查询将在第一个查询完成后 运行。因此,当您的第二个查询 运行s 时,第一个查询可能仍未检索到 lesson
的值,因此 "undefined".
解决方案是将第二个查询移动到第一个查询的 success
块内。