【问题标题】:Serving sending NULL not being caught by $http request服务发送 NULL 未被 $http 请求捕获
【发布时间】:2016-11-09 00:22:08
【问题描述】:

当没有找到数据时,我从中检索数据的服务器返回NULL(我无法控制此服务器)。问题是数据没有成功或错误,而只是抛出错误。我想捕捉 NULL 并将其视为正常响应。

  var config = {
    method:'GET',
    url:url,
    cache: false,
    params: data
  };
  return new Promise(function(resolve, reject) {
    $http(config).success(function(data) {
      resolve(data);
    }).error(function error(err) {
      reject(err);
    });
  });

承诺正在控制器中使用:

service.getPromise().then(function(data) {
  console.log(data);
});

控制台中的确切错误是:

ionic.bundle.js:26794 SyntaxError: Unexpected token N in JSON at position 0
Uncaught (in promise) undefined

提前谢谢你

【问题讨论】:

    标签: angularjs ionic-framework get


    【解决方案1】:

    添加一个 catch 块来捕获并解决错误,然后您可以在您的 getPromise 承诺中访问它时将该响应解析为您想要的任何内容:

    var config = {
        method:'GET',
        url:url,
        cache: false,
        params: data
    };
    
    return new Promise(function(resolve, reject) {
        $http(config).success(function(data) {
          resolve(data);
        })
        .error(function error(err) {
          reject(err);
        })
        .catch(function (err) {
            // your catch logic here
    
            resolve(null);
        });
    });
    

    【讨论】:

    • 感谢您的评论,但我最终得到了同样的错误。
    猜你喜欢
    • 2013-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-27
    • 1970-01-01
    • 2017-07-19
    • 1970-01-01
    相关资源
    最近更新 更多