处理JavaScript错误

时间:2015-12-27 13:23:56

标签: javascript

我正在尝试处理JavaScript中的未定义错误 控制台正在转储此错误

  

未捕获的TypeError:无法读取属性'数据'未定义的

我的代码:

try { 

FB.api(
  '/me/',
  'GET',
  {"fields":"posts{likes.limit(10){id,name}}"},
  function(response1) {

console.log(response1);
response1.posts.data[1].likes.data[0].id
if (typeof(response1.posts.data[1].likes.data[0].id) == 'undefined') { 

alert("error1");
}

});


} 
catch(err) { 

alert("erro2");

} 

出错了什么?

2 个答案:

答案 0 :(得分:1)

您试图从对象链中获取一些数据,其中对象之前的对象未定义,因此明确您尝试调用undefined.data。这就是为什么你的if条件没有满足,你只是得到了正常的控制台错误,而不是你的alert(这里需要,因为我理解你的代码)。

相反,你可以这样做:

    if (typeof(response1.posts) && typeof(response1.posts.data[1].likes.data[0].id) == 'undefined') 
{...} 

答案 1 :(得分:0)

可能是响应不是Object,而是字符串。尝试将其转换为JavaScript对象:

console.log(response1);
response1 = JSON.parse(response1);
response1.posts.data[1].likes.data[0].id