Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Parse platform 解析查询等式不工作_Parse Platform_Parse Cloud Code - Fatal编程技术网

Parse platform 解析查询等式不工作

Parse platform 解析查询等式不工作,parse-platform,parse-cloud-code,Parse Platform,Parse Cloud Code,我试图用一个我刚从另一个查询中获得的参数(名为“lesson”)简单地查询我的数据库过滤结果。 问题是,当我尝试使用“警报”命令的值打印时,它会显示:未定义。 很奇怪,当我把“课”放在元组的字段中时,它就起作用了。 特别线路 obj.set(“学生”,课程) 添加只是为了调试目的,实际上会将一致的值写入表中。 这是全部代码: Parse.Cloud.job("checkingTwoTables", function(request, response) { Parse.Cloud.useMast

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

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.Cloud.job(“checkingTwoTables”),函数(请求、响应){
Parse.Cloud.useMasterKey();
学习,教训;
//选择列表中的第一个学生并检查他的输入
var wholeTable=newparse.Query(“回车”);
全集({
成功:功能(结果){
如果(result.length!=0)
{               
//选择我们感兴趣的学生姓名和课程
stud=结果[0]。获取(“学生”);
lesson=结果[0]。获取(“lesson”);
}
else{}
},
错误:函数(错误){
console.log(“失败”);
}
});
警报(“课程值:”+课程);
var selectionQuery=newparse.Query(“回车”);
selectionQuery.equalTo(“课程”、“cns”);
selectionQuery.find({
成功:功能(结果){
对于(var i=0;i
.find()
正在向服务器发出请求。您无法保证它何时完成,因此无法保证第二个查询将在第一个查询完成后运行。因此,当第二个查询运行时,第一个查询可能尚未检索到
课程的值,因此出现“未定义”

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

您遇到了确切的问题

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


解决方法是将第二个查询移动到第一个查询的
success
块中。

谢谢,这正是我所做的,它工作得非常完美!对于那些有同样问题的人:我找不到避免嵌套的方法。祝你愉快。你可以避免嵌套…阅读解析文档上的承诺ion:谢谢你,这正是我所做的,它工作得非常完美!对于那些有同样问题的人:我找不到避免这种嵌套的方法。祝你愉快。你可以避免嵌套…阅读解析文档上的承诺: