gpt4 book ai didi

javascript - 似乎无法捕捉到 javascript 为空

转载 作者:行者123 更新时间:2023-11-28 18:48:49 26 4
gpt4 key购买 nike

我有以下代码,我试图在发生错误/没有返回数据时进行保护。就目前情况而言,我收到错误:

[Info] undefined (ionic.bundle.js, line 19387)
[Error] Error: undefined is not an object (evaluating 'data.data.length')

代码如下所示,可以理解,它会失败,因为 data.data.length 为 null/未定义(没有故意返回数据来测试)

SaveSubmitService.saveLocal('GetData', 'NearByHubs4S', $scope.options, false).then(function (data) {
$scope.return = data;
if (typeof data != "undefined") {
if (data.data.length > 0) {
$scope.bars = $scope.return.data;
$scope.noNot = false;
} else {
$scope.noNot = true;
}
} else {
$cordovaDialogs.alert('Could not retrieve data. Are you sure you\'re online?', 'No Response', 'Ok');

}

$scope.$broadcast('scroll.refreshComplete');

});

奇怪的是,它的 typeof 为 true,但 data.data.length 为 null。

我尝试过 if data == null, data == undefined, data == "undefined", data.data.length == undefined 等

基本上,如果长度为空,我会尝试出错!

最佳答案

问题不在于data.data.length为空。问题是您想在 undefined 上使用 length 属性。这意味着 data 已定义并且非 null,但它没有 data 属性,因此 data.data 未定义。

而不是:

if (typeof data != "undefined") {
if (data.data.length > 0) {

做:

if (data && data.data) {
if (data.data.length > 0) {

关于javascript - 似乎无法捕捉到 javascript 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34857239/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com