我在JQuery中找到了许多API,并缓存了每个API的结果,以便可以在页面中多次重复使用数据以呈现不同格式的某些仪表板小部件。

问题是,如果API返回500错误的状态代码,我不想尝试绘制小部件,而是以友好的方式捕获错误。

但是,我无法弄清楚.catch如何与JQuery.ajax()函数一起工作。读完here,here,here,here和其他十几个词之后,到目前为止,我仍然遇到相同的控制台错误:

TypeError:LoadDataFromApi(...)。then(...)。catch不是函数

我试图注释该代码以解释我在每个阶段想要做的事情。请有人解释为什么整个.catch都不适合我。

// Cache object to save API data for re-use

var requestCache = {};

// Get API data and save to cache

function LoadDataFromApi(apiUrl) {

if (!requestCache[apiUrl]) {

var result = $.ajax({

type: 'GET',

url: apiUrl,

dataType: "json",

statusCode: {

500: function (xhr) {

var err = JSON.parse(xhr.responseText);

console.log('Message:' + err.Message);

// throw err.Message; // removed because this was always an "uncaught exception", even if used within try/catch

},

200: function (xhr) {

// Do nothing here - put result into cache regardless of status code

}

}

});

requestCache[apiUrl] = result; // save the JSON data into cache

}

return requestCache[apiUrl];

}

// Called by page on load

function LoadJsonData() {

LoadDataFromApi('/api/GetFoo?Row=10')

.then(function (data) {

RenderChart(data, 'Removed for legibility');

})

.catch(function (error) {

console.log('Promise catch: ' + error);

});

LoadDataFromApi('/api/GetFoo?Row=10') // this returns cached data because API has already been hit

.then(function (data) {

RenderChart(data, 'Removed for legibility');

})

.catch(function (error) {

console.log('Promise catch: ' + error);

});

LoadDataFromApi('/api/GetBar')

.then(function (data) {

RenderChart(data, 'Removed for legibility');

})

.catch(function (error) {

console.log('Promise catch: ' + error);

});

}

ajax then jquery,使用Jquery.ajax()。then()时无法.catch()错误相关推荐

  1. Jquery中使用ajax请求SSM后台时提示:org.springframework.http.converter.HttpMessageNotReadableException: Could no

    场景 Jquery中使用ajax向SSM后台请求数据时提示: org.springframework.http.converter.HttpMessageNotReadableException: C ...

  2. ajax实现注册用户名时动态显示用户名是否已经被注册(1、ajax可以实现我们常见的注册用户名动态判断)(2、jquery里面的ajax也是类似我们这样封装了的函数)...

    ajax实现注册用户名时动态显示用户名是否已经被注册(1.ajax可以实现我们常见的注册用户名动态判断)(2.jquery里面的ajax也是类似我们这样封装了的函数) 一.总结 1.ajax可以实现我 ...

  3. jQuery 中的 Ajax

    jQuery 对 Ajax 操作进行了封装, 在 jQuery 中最底层的方法时 $.ajax(), 第二层是 load(), $.get() 和 $.post(), 第三层是 $.getScript ...

  4. jquery ajax自动完成,使用AJAX进行JQuery自动完成(JQuery Autocomplete with AJAX)

    使用AJAX进行JQuery自动完成(JQuery Autocomplete with AJAX) 我正在尝试编写一个JQuery自动完成脚本,它将通过AJAX调用url并在用户将数据输入表单时更新自 ...

  5. jQuery简单的Ajax调用示例

    jQuery确实方便,下面做个简单的Ajax调用: 建立一个简单的html文件: <!DOCTYPE HTML> <html> <head> <script ...

  6. 使用jquery+json实现ajax的方法

    在使用Jquery + json 的过程中由于一个小问题没有注意到,程序一直有错误.在网上找了很多JSON方面的文章但基本都是很简单的举例,所以我觉得有必要写一个完整的JQuery + json 实现 ...

  7. Java程序员从笨鸟到菜鸟之(八十九)跟我学jquery(五)jquery中的ajax详解

    Ajax让用户页面丰富起来, 增强了用户体验. 使用Ajax是所有Web开发的必修课. 虽然Ajax技术并不复杂, 但是实现方式还是会因为每个开发人员的而有所差异.jQuery提供了一系列Ajax函数 ...

  8. jQuery源码 Ajax模块分析

    写在前面: 先讲讲ajax中的相关函数,然后结合函数功能来具体分析源代码. 相关函数: >>ajax全局事件处理程序 .ajaxStart(handler) 注册一个ajaxStart事件 ...

  9. ajax 批量上传图片插件,jQuery多文件上传插件jquery.imageuploader.js

    插件描述:jQuery多文件上传插件jquery.imageuploader.js,可以同时上传多个文件并支持拖拽上传 jquery.imageuploader.js 一款jquery多文件上传插件. ...

最新文章

  1. Android 系统提供的文件下载
  2. mysql字符串操作
  3. Windows 8 应用开发 - 应用栏
  4. CLion 生成CMakeList文件和include文件不存在问题
  5. vector的简单实现
  6. 如何分析SAPPSPRO-S_MAT_ENHANC_COMM问题
  7. sql 写query_为什么需要动态SQL
  8. acid(数据库事务正确执行的四个基本要素的缩写)
  9. 7-8 德才论 (25 分)(C语言实现)
  10. 前女友发来加密的 “520快乐.pdf“,我用python破解开之后,却发现。。。
  11. Git ~ 添加远程仓库 ~Git
  12. 软中断和tasklet
  13. Linux中几个简单实用的文本处理工具
  14. 金融支付-银联卡支付系统产品介绍
  15. 大学本科基于html5毕业设计题目50例
  16. 左程云算法Day6 图
  17. 邮件安全证书(S/MIME),如何申请邮件证书
  18. Python-自学爬虫篇
  19. python 游戏(记忆拼图Memory_Puzzle)
  20. TLE(两行轨道数据)卫星行李数据格式解析

热门文章

  1. 21种代码的“坏味道”
  2. Linux中用户的简介与管理
  3. webrtc之onicecandidate的 event handler的一点疑惑
  4. nohup.out过大问题
  5. 两平面平行但不重合的条件是_____「初一数学」平行线的判定与性质的综合应用...
  6. 用户体验很棒的Git学习网站
  7. Go 语言真是现在进大厂的捷径?
  8. java 时间序列预测_基于spark的时间序列预测包Sparkts._的使用
  9. JUC:ReentrantLock互斥锁
  10. 解决方案:Nginx高可用方案