javascript - JavaScript 的不稳定行为 - 无法读取未定义的属性 'longitude'

标签 javascript angularjs debugging

我正在开发一个 Angular 应用程序,它从 API 加载数据。

一切都按预期工作,除了定期在 Chrome console.log 中收到此错误

TypeError: Cannot read property 'longitude' of undefined

updateMapWaypoint error

这也会导致一些后续功能失效。提示的线 Angular 如下

    function updateMapWaypoint(lastposition) {
        console.log("updateMapWaypoint(%s) called", lastposition);
        console.log($scope.units[$scope.selectedUnitIndex]);
        var longitude = (lastposition) ? $scope.units[$scope.selectedUnitIndex].lastposition.gps.longitude : $scope.unsortedPositions[$scope.selectedPositionIndex].gps.longitude;

第一个是调试,最后一个是造成麻烦的线路。据我从控制台中的 printet 对象可以看到。 JavaScript 应该可以毫无问题地从对象中定位经度,但是它会抛出错误,并且我找不到任何方法来解决它。

感谢所有帮助,如果需要更多详细信息,我会尽可能提供。

最佳答案

这看起来可能是一个竞争条件。

console.log()将向您显示该对象现在,以及不是您调用 console.log() 时的情况。 。要查看某个对象在某个时间点的属性,您必须复制其内容并将其发送到 console.log() ,例如通过字符串化它:

console.log(JSON.stringify(myObject))

或者如果您使用的是 Angular:

console.log(angular.extend({}, myObject));

这很令人困惑(它已经让我困惑了好几次)。请记住您正在发送 console.log() 对象引用,而不是对象的副本。

关于javascript - JavaScript 的不稳定行为 - 无法读取未定义的属性 'longitude',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33595310/

相关文章:

c# - 如何在调试中访问根命名空间

android - 如何在 Android Studio 中调试 C++ 代码?

javascript - Javascript 对象如何通过 for...of 语句变得可迭代?

javascript - Protractor :步骤不一一执行

angularjs - 使用 ui-router 和 Angular-translate 本地化 URL

javascript - AngularJS - CSS 动画仅以一种方式工作

javascript - 我如何使用 Promise/$q.all

javascript - IE9 开发者预览版(Build 4,v1.9.7.9.16.6000)是否支持文件 API?

javascript - 从种子号码创建电话号码

javascript - 计算年龄 JavaScript