【问题标题】:Parse Query equalTo not Working解析查询等于不工作
【发布时间】:2015-07-29 08:14:42
【问题描述】:

我正在尝试使用刚刚从另一个查询中获得的参数(名为:“课程”)来简单地查询我的数据库过滤结果。 问题是,当我尝试使用“警报”命令课程的值进行打印时,它会显示:未定义。 奇怪的是,当我将“课程”放在元组的字段中时,它会起作用。 特别是线 obj.set("student", lesson); 仅出于调试目的添加,实际上将一致的值写入表中。 这是整个代码:

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...

【问题讨论】:

    标签: parse-platform parse-cloud-code


    【解决方案1】:

    您遇到了this 的确切问题。

    .find() 正在向服务器发出请求。您无法保证它何时完成,因此您无法保证您的第二个查询将在第一个查询完成后运行。因此,当您的第二个查询运行时,lesson 的值可能还没有被第一个查询检索到,因此是“未定义”。

    解决方案是将第二个查询移到第一个查询的 success 块内。

    【讨论】:

    • 谢谢,这正是我所做的,而且效果很好!对于那些有同样问题的人:我找不到避免这种嵌套的方法。祝你有美好的一天。
    • 你可以避免嵌套...阅读 Parse 文档中的 Promises:parse.com/docs/js/guide#promises
    猜你喜欢
    • 1970-01-01
    • 2020-05-29
    • 1970-01-01
    • 2012-01-20
    • 1970-01-01
    • 1970-01-01
    • 2019-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多