【问题标题】:Parse Failed with: TypeError: Cannot read property 'success' of undefined解析失败:TypeError:无法读取未定义的属性“成功”
【发布时间】:2014-12-27 01:44:22
【问题描述】:

我不断收到此错误失败:TypeError:无法读取未定义的属性“成功”,我无法找出问题

Parse.Cloud.httpRequest(
{
    url:url,
    success:function(httpResponse)
    {
      var Day = Parse.Object.extend("TestDay");
      var queryToday = new Parse.Query(Day);
      queryToday.equalTo("dayday", day);
      queryToday.equalTo("daymonth", month);
      queryToday.equalTo("dayyear", year);
      queryToday.equalTo("owner", theUser);
      queryToday.first().then(function(dayObject)  <---line 662
      {
         if(dayObject == undefined)
         {
           console.log("not found");
         }
         else
         {
           console.log(dayObject);
         }

      }, function(error)
      {

          console.log("first failed");
      });
    }
 });

失败:TypeError:无法读取未定义的属性“成功” 在 Object.b.Query.first (Parse.js:1:57000) 在 Object.Parse.Cloud.httpRequest.success (main.js:662:48)

【问题讨论】:

    标签: javascript parse-platform promise


    【解决方案1】:

    你怎么知道那是行?我的意思是,你是在使用控制台上网吗?

    还有什么要知道的吗?就像您在开发云功能一样?

    我的猜测是返回 dayObject.save(); 不起作用。尝试使用console.log(dayObject) 来准确了解查询的响应。您可能必须使用如下条件:

    if(dayObject == undefined){
        return Parse.Promise.error("Not Found");
    }else{
        dayObject.increment("totalnumberofphotos");
        return dayObject.save();
    }
    

    【讨论】:

    • 是的,它是一个后台作业功能,控制台直接指向给出该错误的那一行
    • 不管我是使用我的代码还是你在该块中的代码,它都会给出相同的错误。我试图清除 then 块中的所有代码,它仍然给出相同的错误。
    • 我的假设是,如果 first() 有结果,它将调用之后的第一个块,如果没有结果,将调用错误块,我将创建一个全新的一天
    • 如果找不到项目,它仍然会调用成功回调,但 dayObject 将为空
    • 是的,所以即使我更改了代码以检查它是否未定义,但在那一行“queryToday.first().then(function(dayObject){”仍然给出错误“无法读取属性未定义的‘成功’”
    【解决方案2】:

    我找到了问题的答案。这是因为云上的 parse sdk 版本太低,所以我必须将它更新到最新版本,它现在可以工作了。非常感谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-21
      • 1970-01-01
      • 2018-06-02
      • 2019-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多