jQuery 延迟和承诺 - .then() 与 .done()

2024-02-08

我一直在阅读有关 jQuery deferreds 和 Promise 的内容,但我看不出使用之间的区别.then() & .done()成功回调。我知道埃里克·海因兹 http://www.erichynds.com/jquery/using-deferreds-in-jquery/提到.done() and .success()映射到相同的功能,但我猜也是如此.then()因为所有回调都是在成功完成操作时调用的。

谁能告诉我正确的用法吗?


回调附加到done()当延迟解决后将被解雇。回调附加到fail()当 deferred 被拒绝时将被解雇。

在 jQuery 1.8 之前,then()只是语法糖:

promise.then( doneCallback, failCallback )
// was equivalent to
promise.done( doneCallback ).fail( failCallback )

从 1.8 开始,then()是一个别名pipe()并返回一个新的承诺,请参阅here https://stackoverflow.com/questions/9583783/when-should-i-use-jquery-deferreds-then-method-and-when-should-i-use-the-pip欲了解更多信息pipe().

success() and error()仅适用于jqXHR调用返回的对象ajax()。它们是简单的别名done() and fail()分别:

jqXHR.done === jqXHR.success
jqXHR.fail === jqXHR.error

Also, done()不限于单个回调,并且会过滤掉非函数(尽管 1.8 版本中存在一个字符串错误,应该在 1.8.1 中修复):

// this will add fn1 to 7 to the deferred's internal callback list
// (true, 56 and "omg" will be ignored)
promise.done( fn1, fn2, true, [ fn3, [ fn4, 56, fn5 ], "omg", fn6 ], fn7 );

同样适用于fail().

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

jQuery 延迟和承诺 - .then() 与 .done() 的相关文章

  • Chrome 扩展同步调用 - 仅在窗口关闭后创建窗口

    我有这个代码 function voteNewWindow mailNum chrome windows create url http www google com incognito true function window conso
  • jQuery 从选择选项切换 div

    我需要从下拉选择选项框中切换 div 我想要它类似于汇编选择 http www ryancramer com projects asmselect examples example1 html对于 jquery 但我不想列出选项标签 而是希
  • 在 jQuery 可排序中对多个选定项目进行排序?

    我试图在 jQuery 可排序集中选择多个项目 然后将选定的项目一起移动 这是我的弱点开始尝试使其发挥作用 http jsfiddle net benstenson CgD8Y 这是代码 HTML div class container d
  • ToggleClass 动画 jQuery?

    我的网站上有一个部分 当用户单击时我希望它展开 我正在使用 jQuerytoggleClass为了这 expandable function e e preventDefault this closest article toggleCla
  • 如何检测元素内容何时发生变化

    我正在寻找一种方法来监视元素内动态填充 无页面重新加载 内容 以便我可以将类添加到另一个元素 到目前为止我有这个 HTML div class message container div class messages error span
  • 当复选框条件更改时,如何使用ajax更新mysql数据库?

    我有一个在客户端按行显示的文章表 每篇文章都有一个唯一的 ID 并包含一个复选框以指示该文章是否被选中为收藏夹 如果它是最喜欢的 则该复选框已被选中 如果没有 则未选中 现在 如果特定于每一行的复选框条件发生变化 我需要 js 或 jque
  • 如何确定当前使用哪个网格选项

    我将 Bootstrap 3 用于使用 PHP 和 HTML 创建的网页 随着响应式网格和类的开启引导程序3您可以将多个类分配给一个 div 以根据当前屏幕尺寸定义不同的宽度 例如 div class col lg 3 col md 3 c
  • JQuery nth-child 无法正常工作

    我正在使用 JQuery 的 nth child 选择器来使用 photo post thumbnail 类来更改每个第 3 个 div 上的边距 但它会在每个第 2 个 div 中更改它 谁能发现我做错了什么吗 Site http www
  • 检查外部 JS 库是否已加载[重复]

    这个问题在这里已经有答案了 我当前的设置是用户单击链接来动态加载内容 其中还包括加载脚本 我希望能够测试是否加载了外部脚本 特别是 Google Maps JS API 如果没有加载 则继续执行此操作 这是我的代码 if href cont
  • HTML5 仅拖放图像

    我想做的是 如果所有拖动的文件都是图像 则将其删除 但如果有其他文件扩展名 则不要删除它们 而仅删除图像 这是我的尝试 HTML div div JavaScript var dropzone document getElementById
  • 如何使用 jQuery 进行同步请求?

    为什么不返回该函数的responseText function LoadBookmarksAsXml return ajax type GET async false url http www google com bookmarks ou
  • IE8 中字符串的 indexOf 的替代函数是什么?

    我用过indexOf检查句子中是否存在特定文本 如下所示 var temp temp data not available if temp indexOf datas 0 alert True else alert false 我面临的问题
  • 如何处理 AJAX 请求中的会话超时

    我相信你们都熟悉使用 AJAX 的投票系统 嗯 看那边 我有类似的东西 当你投票赞成或反对时 它使用 AJAX 从 votes php 请求新值 问题是我正在使用会话来获取用户 ID 因此一个人只能投票一次 如果他们在页面上坐了一个小时然后
  • 像在 tumblr 注册页面上那样鬼写

    有谁知道如何创建一个类似 tumblr 的字段 http www tumblr com http www tumblr com 这是一个 URL 字段 其中有一些褪色的文本 然后当您单击它并键入时 它会附加一些文本 tumblr com 您
  • 当覆盖设置为 null 时,通过外部单击关闭 fancybox

    我正在使用 fancybox 2 1 4 插件 它工作得很好 但我有一个问题 我想将覆盖设置为空 并且当用户单击 fancybox 容器外部 时关闭 fancybox 我已经尝试过以下代码 但它不起作用 因为没有可供单击的覆盖层 fancy
  • 如何确定并打印 jQuery 版本?

    是否有一个 jQuery 函数可以返回当前加载的 jQuery 版本 你可以使用这个 fn jquery or if you re using noConflict jQuery fn jquery 当 jQuery 构建时它会自动更新 定
  • 如何在 DOM 中的每个元素中调用函数,即使它们是动态创建的

    我想对 DOM 上的特定元素调用函数 例如 red css backgroundColor pink 它适用于 DOM 中已经存在的任何元素 但我也希望在动态添加到 DOM 的元素中调用此方法 我尝试过类似的事情 red on functi
  • 将纯文本转换为 HTML

    我有一个脚本 在某个时刻我可以通过 Ajax 调用获取 HTML 数据 我必须将此 HTML 转换为纯文本 如下所示 div text data 我现在想扭转这一局面 再次将文本设为 HTML 我有一个简单的 Jquery 方法可以做到这一
  • 如何禁用 body 元素的滚动?

    如何禁用正文滚动 body css overflow hidden 仅隐藏滚动条 但不会禁用滚动 我想禁用正文的滚动 但我想保持其他分区的滚动完好无损 试试这个 CSS 不需要 jQuery 评论后更新 尝试指定高度body too
  • 如何动态调整jqgrid到当前窗口大小?

    如何动态调整jqgrid到当前窗口大小 基于javascript jQuery 最好的例子在这里 TinyMCE 去 http www tinymce com tryit full php http www tinymce com tryi

随机推荐

  • 架构问题:使用依赖注入导致垃圾 API

    我正在尝试创建一个类 它执行各种与数据库相关的低级操作 但为 UI 层提供了一个非常简单的界面 此类表示全部位于特定聚合根内的一堆数据 由单个 ID int 检索 构造函数有四个参数 public AssetRegister int cas
  • App_Data 文件夹中的图像未显示在浏览器中

    当我将图像 URL 属性设置为 App Data 文件夹中的 asp 图像控件时 图像显示在页面设计视图中 但不显示在浏览器中
  • JPA/Hibernate 中键“PRIMARY”的重复条目

    我有一个many to manymysql 数据库中的关系 Module
  • 变量前的美元符号

    我有这个示例代码 用于从现有数据框 my data 创建新数据框 new data new data NULL n 10 this number correspond to the number of rows in my data con
  • 我怎样才能在我的桌子上有一个圆形边框和边框折叠:折叠? [复制]

    这个问题在这里已经有答案了 我有以下内容 table style border 1px solid 999 thead tr style background color red th Weekday th th Date th th Ma
  • 如何将struct从合约A传递到合约B?最佳实践

    我发现这样 当创建一个具有结构的通用接口时 然后合约A和B继承该具有结构的接口 但我想知道是否还有其他方法 是否存在可以更新具有结构的合约的情况 pragma experimental ABIEncoderV2 pragma solidit
  • 确定隐马尔可夫模型中隐藏状态的数量

    我正在学习隐马尔可夫模型 用于对 t 个图像帧序列中的运动进行分类 假设每个帧有 m 个维度的特征 然后我将它聚集成一个符号 用于可观察的符号 我为 k 类创建 k 个不同的 HMM 模型 那么 如何确定每个模型的隐藏状态数量以优化预测 顺
  • 密码保护 iPhone 应用程序

    我正在启动一个新应用程序 我想知道如何需要密码才能打开它 我正在考虑一个UIActionSheet在应用程序中didFinishLaunchingWithOptions应用程序委托实现文件的方法 但我不确定如何去做 不过我会继续努力 Fou
  • AngularFire $add 操作导致浏览器冻结

    我正在使用 angularjs 学习 Firebase 从本教程https thinkster io tutorials angularfire realtime slack clone creating the channels side
  • 在 Java 中对双精度值进行哈希处理

    我想知道如何在 Java 中对 double 进行哈希处理 我已经散列了其他原始数据和对象 我想我可以使用 hashcode 方法吗 从我所看到的来看 这看起来相当复杂 我遇到了一些关于创造种子的事情 我想知道关于如何解决这个问题的任何想法
  • 制作通用数组是不好的做法吗?替代方案是什么?

    我在学校用 C 编码已经三年了 两天前我开始用 Java 编码 我的问题是 制作通用数组是不好的做法吗 另一种选择是什么 我很困惑 除了做一些奇怪的事情 例如这个例子 之外 我似乎无法制作通用数组 Class implementing th
  • 对象中对象中的 JavaScript `this`?

    抱歉 帖子标题模糊 我无法为这篇文章制定正确的英文名称 例如我有这样一个对象 var APP a 1 b function return this a 这样 如果我打电话console log APP b than this将引用 APP
  • 如何重置 Kafka 偏移量以匹配尾部位置?

    我们将 Storm 与 Kafka 和 ZooKeeper 结合使用 我们遇到过这样的情况 我们必须删除一些主题并用不同的名称重新创建它们 除了现在读取新主题名称之外 我们的 Kafka spouts 保持不变 但是现在 当尝试从新主题读取
  • 在 fluidd 中解析 nginx 入口日志

    我想在 Kubernetes 中使用 Fluentd 解析入口 nginx 日志 这在 Logstash 中相当简单 但我对 fluidd 语法感到困惑 现在我有以下规则
  • Greenlet 运行时错误和在 docker 中部署的应用程序不断启动所有工作人员

    RuntimeWarning greenlet greenlet 大小已更改 可能表示二进制 不兼容 预期来自 C 标头的 144 从 PyObject 得到的为 152 所有的工人都被解雇了 2020 09 28T14 09 41 864
  • 使用 spring 3.x 配置速度工具

    我对弹簧和速度都很陌生 我想使用 spring 3 x 配置速度工具 但我找不到相关的好文章 速度模板未显示会话变量 我从 Spring 控制器设置 至于在spring 3 x中配置Velocity工具 首先将tools xml文件放在有用
  • Java 新手,出现错误“int 无法取消引用”

    我是 java 新手 我已经从事这个练习有一段时间了 但不断收到错误 int 无法取消引用 我看到了几个类似的问题 但仍然无法弄清楚我自己的情况 这是完整的代码 package inclass class OneInt int n OneI
  • 如何在角度2中等待函数完成执行?

    下面是我的代码 我想要login and authenticated 等待的函数getProfile 函数来完成其执行 我尝试了多种方法 例如承诺等 但无法实现 请建议我解决方案 import Injectable from angular
  • 从服务器视频链接生成缩略图 android

    在android中是否可以获取某人的任何类型视频的缩略图 该人仅具有该视频的url链接 并且视频可以来自任何来源 例如youtube或任何来源 请告诉我是否可能 这是我的我试图通过java代码获取youtube视频的缩略图 public c
  • jQuery 延迟和承诺 - .then() 与 .done()

    我一直在阅读有关 jQuery deferreds 和 Promise 的内容 但我看不出使用之间的区别 then done 成功回调 我知道埃里克 海因兹 http www erichynds com jquery using defer