使用 jQuery Deferred 进行错误处理和恢复

2023-12-30

我正在使用 jQuery,并且知道这个问题是因为 jQuery.Deferred 实现不符合 Promises/A+ 标准。我不想使用任何其他库来解决这个问题。

有了这个,有没有办法从$.Deferred().fail()回调使我返回到成功链?这可以通过以下的多重回调形式实现:then()但到目前为止我还没有找到使用的解决方案.fail()

then:

asyncThatWillFail().then(function () {
    // useless callback
}, function () {
    console.log("error");
    return $.Deferred().resolve();
}).then(function () {
    console.log("continuing on success chain");
});

失败(不起作用):

asyncThatWillFail().fail(function () {
    console.log("error");
    return $.Deferred().resolve();
}).then(function () {
    console.log("continuing on success chain");
});

就我而言,我只需要检查是否失败,设置一个标志,然后继续我正在做的事情。我根本不需要“then”示例中的并行成功处理程序。

这里有一个jsFiddle https://jsfiddle.net/86d29j1L/2/进一步澄清我的意思。


不,你不能使用.fail为了那个原因。但是,您不需要将函数作为第一个参数传递给.then http://api.jquery.com/deferred.then/:

参数可以是null如果不需要该类型的回调。

由于仅then启用链接,您应该使用

asyncThatWillFail().then(null, function () {
    console.log("error");
    return $.Deferred().resolve();
}).then(function () {
    console.log("continuing on success chain");
});

除了需要返回已履行的 jQuery 承诺之外,这就像ES6 then https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then方法其中catch https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/catch是同义词.then(null, …).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 jQuery Deferred 进行错误处理和恢复 的相关文章

  • 如何抑制窗口鼠标滚轮滚动...?

    我正在开发嵌入页面中的画布应用程序 我有它 因此您可以使用鼠标滚轮放大绘图 但不幸的是 这会滚动页面 因为它是文章的一部分 当我在 dom 元素上滚动鼠标滚轮时 是否可以阻止鼠标滚轮在窗口上滚动 附加鼠标滚轮 不是 Gecko DOMMou
  • Node.js:如何在检索数据(块)时关闭响应/请求

    我正在用 node js 构建一个应用程序 它加载多个页面并分析内容 因为 node js 发送块 所以我可以分析这些块 如果一个块包含例如索引 nofollow 我想关闭该连接并继续其余部分 var host example com to
  • JavaScript 重定向到新窗口

    我有以下代码 它根据下拉列表的值重定向到页面 我如何使其在新窗口中打开 function goto form var index form select selectedIndex if form select options index
  • 在requestAnimationFrame中使用clearRect不显示动画

    我正在尝试在 HTML5 画布上做一个简单的 javascript 动画 现在我的画布是分层的 这样当我收到鼠标事件时 背景层不会改变 但带有头像的顶层会移动 如果我使用 requestAnimationFrame 并且不清除屏幕 我会看到
  • 如何将 Google Charts 与 Vue.js 库一起使用?

    我正在尝试使用 Vue js 库使用 Google Charts 制作图表 但我不知道如何添加到 div 这是我尝试做的 这是如何使用普通 javascript 添加图表 这是文档的代码示例 https developers google
  • 跟踪用户何时点击浏览器上的后退按钮

    是否可以检测用户何时单击浏览器的后退按钮 我有一个 Ajax 应用程序 如果我可以检测到用户何时单击后退按钮 我可以显示适当的数据 任何使用 PHP JavaScript 的解决方案都是优选的 任何语言的解决方案都可以 只需要我可以翻译成
  • 将div设置为隐藏,延时后可见

    我试图在 X 时间后 也许甚至在随机时间之后 但现在我们只做固定时间 在黑色背景上出现一个黄色方块 function initialSetup if document getElementById yellow null document
  • Firefox 书签探索未超过 Javascript 的第一级

    我已经编写了一些代码来探索我的 Firefox 书签 但我只获得了第一级书签 即我没有获得文件夹中的链接 e g 搜索引擎 雅虎网站 谷歌网站 在此示例中 我只能访问 Search engines 和 google com 不能访问 yah
  • Grails 在 javascript 内的 GSP 站点中使用 grails var

    我有一个在 GSP 文件中的 javascript 代码中使用 grails 变量值的问题 例如 我有一个会话值session getAttribute selectedValue 我想在 javascript 代码部分使用这个值 我现在的
  • Angular 2+ 安全性;保护服务器上的延迟加载模块

    我有一个 Angular 2 应用程序 用户可以在其中输入个人数据 该数据在应用程序的另一部分进行分析 该部分仅适用于具有特定权限的人员 问题是我们不想让未经授权的人知道how我们正在分析这些数据 因此 如果他们能够在应用程序中查看模板 那
  • 使用 JQuery 更改元素的顺序

    有人知道我做错了什么吗 我正在尝试更改某些图像的显示顺序 我希望每次按下按钮时图像都会向右 向左移动一个位置 这是我尝试过的 但没有运气 任何帮助或见解将不胜感激 rightShift click function img hide var
  • Laravel 中只向登录用户显示按钮

    如果我以 John 身份登录 如何才能只显示 John 的红色按钮而不显示 Susan 的红色按钮 测试系统环境 Win10 Laravel5 4 Mysql5 7 19 table class table table responsive
  • 为什么在 Internet Explorer 中访问 localStorage 对象会引发错误?

    我正在解决一个客户端问题 Modernizr 意外地没有检测到对localStorageInternet Explorer 9 中的对象 我的页面正确使用 HTML 5 文档类型 并且开发人员工具报告该页面具有 IE9 的浏览器模式和 IE
  • 为什么我不能在 AngularJS 中使用 data-* 作为指令的属性名称?

    On the t他的笨蛋 http plnkr co edit l3KoY3 p preview您可以注意到属性名称模式的奇怪行为data 在指令中 电话 Test of data named attribute br
  • 条件在反应本机生产中失败,但在开发中有效

    我创建了一个反应本机应用程序 我需要通过它进行比较 如果属实 就会执行死刑 问题是 该条件适用于 React Native 开发模式 而不适用于 React Native 生产版本 我使用 firebase 作为数据库 也使用 redux
  • Javascript 纪元时间(以天为单位)

    我需要以天为单位的纪元时间 迄今为止 我已经看到过有关如何翻译它的帖子 但几天后就没有了 我对纪元时间很不好 我怎么能得到这个 我需要以天为单位的纪元时间 我将解释为您想要自纪元以来的天数 纪元本身是第 0 天 或第 1 天的开始 无论您如
  • Jquery 验证不能正确验证数字?

    我在使用 jquery 非侵入式验证验证数字时遇到问题 我使用的版本是 ASP NET MVC 3 jQuery 1 9 1 jQuery 用户界面 1 10 1 JQuery 验证 1 11 0 我试图验证的输入是
  • JQuery 图像上传不适用于未来的活动

    我希望我的用户可以通过帖子上传图像 因此 每个回复表单都有一个上传表单 用户可以通过单击上传按钮上传图像 然后单击提交来提交帖子 现在我的上传表单可以上传第一个回复的图像 但第二个回复的上传不起作用 我的提交过程 Ajax 在 php 提交
  • 为什么 jquery 没有检测到单选按钮未被选中的情况? [复制]

    这个问题在这里已经有答案了 可能的重复 JQuery radioButton change 在取消选择期间不会触发 https stackoverflow com questions 5176803 jquery radiobutton c
  • 在 ASP.NET Core MVC 中访问从视图到控制器的隐藏值

    我需要帮助使用 jQuery 从 ASP NET Core razor 视图页面传递隐藏控件值 jQuery 用于获取动态控件选定的值 section scripts

随机推荐

  • Node.js、请求、MySQL 和连接池导致无限阻塞/冻结行为?

    我正在开发一个连接到 REST 服务 获取响应 转换响应并将其写入数据库的服务 我最初在概念验证中使用平面文件 一切正常 现在 在 10 15 个请求之后 脚本就会挂起 我收到了所有 30 个处理平面文件的请求 而处理数据库的请求只有三分之
  • Firebase 存储错误:404 - ACCESS_BUCKET

    我正在尝试将图像上传到 Firebase 存储 当我尝试上传图像时 出现 404 错误 但我已在 firebase 中创建了存储 Firebase npm 版本 firebase 7 24 0 Error code 404 message
  • 以“融合”风格从 QTreeView 中删除蓝色选择

    我有一个QTreeView带有定义选择的样式表 但是 当我使用 融合 样式时 装饰上方有一个额外的蓝色选择矩形 我尝试过使用show decoration selected 0 在样式表中 以及设置setAllColumnsShowFocu
  • C# PostMessage 语法,尝试将 WM_CHAR 发送到另一个应用程序窗口

    public partial class Form1 Form return MarshalAs UnmanagedType Bool DllImport user32 dll SetLastError true static extern
  • 将新地点添加到 Google 地方信息

    我是IOS新手 我必须向 Google 地方信息添加新地点 我已经提到了这个链接https developers google com places documentation actions https developers google
  • 很难让 Saxon 进入 XQuery 模式而不是 XSLT

    我很难让 XQuery 工作 我下载了 Saxon HE 9 2 它似乎只想与 XSLT 一起工作 当我输入 java jar saxon9he jar 我获取 XSLT 的使用信息 当我使用 XQuery 的命令语法时 它无法识别参数 如
  • 对我自己的库的未定义引用

    我已经创建了我的 lib a 文件 其中包含几个 gcc c file c o file o then ar sr lib libtest a file1 o file2 o file3 o 确认与 ar t lib libtest a f
  • 实体“ClassName”的给定名称为空

    我在 Eclipse Kepler 中使用 JPA 尽管类中没有任何变化 但我的实体 Bean 偶尔会开始显示错误 突然间 Entity注释突出显示为错误 相关错误消息为 实体 com test domain Result 的给定名称为空
  • 如何在运行模板时获取所有分配的 Smarty 变量?

    我想在模板内将所有变量分配给 Smarty 例如 如果我有这段代码 smarty gt assign name Fulano smarty gt assign age 22 result this gt smarty gt fetch fi
  • 绑定到自定义控件的一部分中的事件

    我正在尝试在以下位置实现该示例 https github com olohmann WpfRxControls https github com olohmann WpfRxControls 自定义控件分为三个部分 PART 文本框 PAR
  • 读取 Spring boot fat jar 内的文件

    我们有一个 Spring Boot 应用程序 它有一个遗留的 jar api 我们使用它需要使用 InputFileStream 加载属性 我们将旧版 jar 包装在 Spring Boot Fat jar 中 属性文件位于 BOOT IN
  • 将outputStream转换为字节数组[重复]

    这个问题在这里已经有答案了 如何获取输出流的字节 或者如何将输出流转换为字节数组 从理论角度来看 即 无论作为用例在实践中是否有意义 这是一个有趣的问题 本质上需要实现类似的方法 public abstract byte convert O
  • 如何使用 UIBezierPath 裁剪图像?

    我想从UIBezierpath闭合路径 见图 我将图像绘制在UIView using drawRect方法并绘制线条正在使用drawRect方法 如何获得特定的闭合路径图像 请帮我 提前致谢 此代码用于绘制 uibezierpath UIB
  • TYPO3 中的 eID 是什么?

    我已经多次遇到这个词了 通常 资源会直接解释如何做某事 但没有提及这是什么或它的用途 另外 很多资源都是德语的 或者不是很清楚 So 什么是 eID 这是 TYPO3 特有的东西还是一般概念 你能用它做什么 这对于 TYPO3 gt 9 仍
  • Python 中的顶级语句是什么?

    在 Python 指南的章节中项目结构 http docs python guide org en latest writing structure html中 高层声明 一词被多次提及 我不确定这到底指的是什么 我的猜测是 在加载模块后立
  • 迄今为止的字符串有时完整的日期存在有时我只在java中得到年份

    因此 我正在解析 json 有时我收到的包含日期的字符串已满 dd mm yyyy 有时我只收到 yyyy 我似乎无法将其转换为日期 所以如果有人可以提供帮助 根据您的业务需求 您可以使用以下命令将月份和日期默认为所需值DateTimeFo
  • 将 gitlab wiki 镜像到 github

    我们正在私有 GitLab 服务器上开发一个软件 外部没有人可以访问此服务器 现在我们必须以某种方式让我们的软件可供所有人使用 我们的想法是将存储库镜像到 GitHub 根据我们所做的一些研究 这应该是可能的 我们还在 GitLab 中维护
  • 如何将多维数组分配给临时变量?

    我想将静态分配的多维数组分配给临时变量 考虑以下示例 void foo int b 3 2 b 1 1 1 no segmentation fault int main int a 3 2 1 2 11 12 21 22 foo a int
  • Rails 应用程序在 Heroku 上失败:(没有路线匹配 [GET]“/”)

    Rails 和 Heroku 的新手 我正在尝试按照以下中的分步说明部署一个简单的应用程序导轨教程 http ruby railstutorial org ruby on rails tutorial book sec heroku ste
  • 使用 jQuery Deferred 进行错误处理和恢复

    我正在使用 jQuery 并且知道这个问题是因为 jQuery Deferred 实现不符合 Promises A 标准 我不想使用任何其他库来解决这个问题 有了这个 有没有办法从 Deferred fail 回调使我返回到成功链 这可以通