了解 Deferred.pipe()

2024-03-26

我一直在阅读有关 jQuery 中的 deferreds 和 Promise 的内容,但我还没有使用过它。

除了方法管道之外,我已经很好地理解了一切。我实在没明白那是什么。

有人可以帮助我了解它的作用以及它可以在哪里使用吗?

我知道有一个问题的标题与此完全相同(here https://stackoverflow.com/questions/5921283/understanding-jquery-deferred-pipe)但它不一样。我正在寻求帮助来理解它和一些例子。另一个问题的目的是了解为什么它在特定情况下不起作用。


基本上,延迟.pipe() http://api.jquery.com/deferred.pipe/是一个异步等价于$.map() http://api.jquery.com/jQuery.map/。它从作为输入提供的其他值中投影出新值,但其目的是与延续一起使用。

让我们从一个例子开始,只需要$.each()并发出返回一个简单对象的 AJAX 请求。对于该对象的每个属性,我们希望表单控件的idattribute 是属性的键,用于将其值设置为属性的值。我们可以这样写:

$.ajax("your/url", {
    dataType: "json"
}).done(function(data) {
    $.each(data, function(key, value) {
        $("#" + key).val(value);
    });
});

现在假设我们要在更新表单控件之前对这些值应用一些函数。如果我们在本地这样做,我们只需要编写:

$.ajax("your/url", {
    dataType: "json"
}).done(function(data) {
    $.each(data, function(key, value) {
        // doSomethingWith() projects values synchronously, as map() does.
        $("#" + key).val(doSomethingWith(value));
    });
});

但如果发生什么情况doSomethingWith()不是在客户端实现的,而是通过另一个Web服务在服务器端实现的?在这种情况下,我们希望将控制流链接到第二个 AJAX 请求中,并且仅在第二个请求返回时更新表单控件。Deferred.pipe()让这变得容易:

$.ajax("your/url", {
    dataType: "json"
}).pipe(function(theOriginalData) {
    return $.ajax("your/web/service/doSomethingWith", {
        data: theOriginalData,
        dataType: "json"
    });
}).done(function(theFinalData) {
    $.each(theFinalData, function(key, value) {
        $("#" + key).val(value);
    });
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

了解 Deferred.pipe() 的相关文章

  • JQuery - 使用变量处理多个元素的一个处理程序

    我有两个这样定义的变量 var a a b b 如何使用 a 和 b 重写以下行 a b click function e a get 0 b get 0 click function e
  • 使用 Twitter 引导模式而不是确认对话框

    我正在尝试使用 twitter 引导模式而不是自定义确认对话框 我的职能 function getConfirm confirmMessage if confirmMessage undefined confirmMessage confi
  • 如何从左向右滑动文本和图像并具有滑动效果[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 为什么 Firefox 3.6 改变了 jQuery 和 CSS 属性?

    为什么 Firefox 3 6 改变了 jQuery 和 CSS 属性 好吧 更具体一点 我有一个交叉淡入淡出插件 可以在放置在彼此之上的两个图像之间创建发光效果 该函数 如下所示 将使顶部图像在悬停时在 200 毫秒内转换为不透明度 0
  • 数据表 - 从 AJAX 源过滤数据

    我有一个数据表 正在从 api 获取数据 现在我的状态是活动的 非活动的 如果标志是活动的 那么我需要在数据表中显示 否则我不应该显示过期的 这是我的fiddle https jsfiddle net lakshmipriya001 qLp
  • 尝试在 JavaScript 中循环前 50 个偶数斐波那契数时出现错误输出 [重复]

    这个问题在这里已经有答案了 我是 JavaScript 新手 无法让我的代码正常工作 非常感谢任何帮助 指导 当尝试 显示前 50 个偶数斐波那契数的总和 时 我得到错误的输出 当前为 9 715575428267785e 30 我需要 1
  • 查找并替换超过 1 个单词?

    我需要使用 jQuery 更改页面上的一堆不同的单词 这是我到目前为止的代码 function var thePage body thePage html thePage html replace My Classes g My Level
  • jQuery .wrap() 不环绕克隆元素

    function extend notify function options duration var defaults inline true href html var options extend defaults options
  • jQuery POST 不使用 IE 11 提交表单值

    我已经尝试找到此问题的解决方案几个小时了 但以下代码根本不适用于 Internet Explorer 11 它适用于 Chrome 和 Firefox 使用 IE11 时 帖子已提交 但提交的表单为空
  • 如果使用jquery,如何在html5中查看显示分钟和秒的CurrentTime

    我想在显示器上看到当前时间分钟和秒的视频 var id main video player alert id get 0 currentTime worked i see 12 324543356 var minnow id get 0 c
  • 使用jquery tagit插件,是否有办法禁用所有条目?

    我有一个页面并且正在使用jquery tagit 插件 http aehlke github io tag it 效果很好 但我试图在单击按钮时禁用它 并使其具有与禁用选择下拉菜单时类似的行为 如下所示 selectDropdown val
  • 如何在没有数据库的情况下创建AJAX分页?

    是否可以在没有 MySQL 帮助的情况下获取 AJAX 分页页面 难道我不能只添加一个包含我需要显示的文本和标记的 PHP 文件 然后通过单击页码将该内容提供给用户吗 那么可以用纯 jQuery 和 PHP 来实现吗 您会使用什么代码方法来
  • 可拖动的非模态弹出窗口 Jquery Mobile

    我希望在 Jquery mobile 中有一个弹出窗口 它不会阻止用户与页面交互 并且 data dismissible false 即当页面的另一部分与页面的另一部分交互并保持可见时 弹出窗口不会消失 我已经尝试过这个 popupNew
  • jQuery自动完成插件-自定义突出显示功能

    我的每个项目的自动完成结果如下所示 h3 Celebrity Sweepstakes h3 p 0 episodes p 但我只想突出显示 H3 内的标题 请参阅下面的 突出显示 功能 我不知道如何更改原始正则表达式以仅替换标题内的内容 s
  • php循环中的ajax在按钮单击时执行操作

    所以我有一个 php 循环 我使用 jquery 滑动切换来隐藏 显示带有 sql 结果的表 目前该表仅使用 php 加载 但由于发生了很多事情 导致了一些加载问题 我需要使用滑动切换 btn 来触发 ajax 因此它仅在按下按钮时请求当前
  • 通过ajax POST提交两次表单

    插入到mysql using php通过文件调用AJAX 前insert语句php代码执行select查询到查找重复记录并继续insert statement Issue 从ajax调用php文件时 它执行了两次并得到作为重复记录的响应 好
  • 在第一页加载时触发 jquery 脚本,然后不再为该用户触发?

    我在我的网站上使用这个 jQuery 模态窗口脚本 http www zurb com playground reveal modal plugin http www zurb com playground reveal modal plu
  • 如何使用 jQuery 使 div 全屏并位于所有其他元素之上?

    div style background color grey div 有简单的方法吗 定义样式overlay或类似的东西 然后你可以使用 jQuery 添加新类 myDiv addClass overlay 如果你想添加点击事件 你可以这
  • 限制在三角形内

    我正在寻找一段通用代码 javascript 它可以与 jquery UI 一起使用来限制三角形内 div 的移动 拖动 与此类似 http stackoverflow com questions 8515900 how to constr
  • d3.js 更新视觉效果

    我有一个与 d3 js 放在一起的树形图 我通过 getJSON 填充数据 效果很好 但是 我在 setInterval 方法中具有此功能 并且它似乎并没有刷新自身 var treemap d3 layout treemap padding

随机推荐

  • 断点指出“objc_autoreleaseNoPool”

    因此 我正在调试一个应用程序 为其应用程序发布做准备 并且我为 所有异常 启用了通用断点 从那时起 每次我运行该应用程序时 控制台都会打印 捕获点 2 抛出 挂起的断点 1 objc exception throw 已解决 objc 117
  • Laravel 具有不同的会话生命周期

    问 如何在 Laravel 5 中创建不同生命周期的会话 这个问题不是重复的这个问题 https stackoverflow com q 40258339 1474817 我不想将其用于任何类型的登录或注册 我只想将其存储 5 分钟 因为获
  • 如何像编译器一样获取每个虚函数索引?

    是否有一些插件或工具可以读取 h 文件 或简单地修改 Intellisense 本身 并吐出每个函数及其虚拟函数表索引 有一种模式我还没有弄清楚与多态性有关 当你开始有 5 个或更多的类相互派生时 它就会变得困难 5 倍 但无论如何 MSV
  • IntelliJ IDEA:如何修复损坏的字体显示?

    无法阅读该语言 怎么设置成英文呢 The issue is not with the language but with some broken font mapping on your system The workaround is t
  • Node.js + Azure SQL 数据库

    我正在挣扎微软的node js sql客户端 https github com WindowsAzure node sqlserver 我已经安装了它 使用 github 页面上的指南没有任何错误 并且一切在本地运行完美 但是当我使用 gi
  • 如何根据 HTML 从统计页面中提取玩家信息?

    我正在尝试使用 selenium 抓取网站的一些信息 下面是该网站的链接http www ultimatetennisstatistics com playerProfile playerId 4742 http www ultimatet
  • C语言中的宏(#define)

    我正在阅读hoard内存分配器的源代码 在gnuwrapper cpp文件中 有以下代码 define CUSTOM MALLOC x CUSTOM PREFIX malloc x 是什么意思CUSTOM PREFIX malloc x i
  • MPAndroidChart 条形图 - 如何对组之间具有随机 x 轴间隔的条形进行分组?

    我想制作一个条形图 其中每个数据点将 3 个不同的数据集分组在一起 如下所示 但是 我无法使用库提供的功能将条形图分组在一起groupBars方法 因为无论我为条目设置什么 x 值 它都会根据我在其参数中指定的间隔对条形进行分组 例如 如果
  • 镜头:新型变焦

    我有兴趣获得zooming我的 monad 变压器堆栈的功能定义如下 newtype Awesome a Awesome StateT AwesomeState ExceptT B ByteString IO a deriving Func
  • Python 将列表转换为集合,大 O

    感谢您的帮助 words Big list of words words set set words 当 n len words 时 我很难确定 set words 的复杂性是多少 是 O n 因为它在列表的所有项目上移动 还是 O l n
  • 如何让odeint成功?

    我是 python 初学者 目前使用 scipy 的odeint计算耦合的 ODE 系统 但是 当我运行时 python shell 总是告诉我 gt gt gt Excess work done on this call perhaps
  • 在 PHP 中将十六进制转换为图像?

    我正在开发通过以下方式与服务器通信的移动应用程序PHP Webservice 这是我第一次使用 PHP 我设法将数据上传到数据库 现在我需要发送图像以将其存储在 ftp 服务器中 为此我转换了image gt hex并从我的应用程序发送 服
  • 如何在安装时强制 Chrome 扩展上的键盘快捷键

    我正在尝试实现一个使用键盘快捷键触发事件的 Chrome 扩展 快捷方式在这里声明 commands sample suggested key default Ctrl I windows Ctrl I description Refres
  • emacs autoloaded 中保证自动加载功能的机制是什么

    我知道所有标有 Autoload 行的函数都将是自动加载函数 但问题是执行此 自动加载函数 的底层机制是什么 还有为什么当从 elpa 安装软件包时 会出现一个名为 XXX autoload elc 的编译文件 当您安装 Elpa 软件包时
  • Php变量存储字符串时的大小限制是多少?

    情况是这样的 我有一个 2Gb 的转储文件 名为myDB sql 它是一个转储文件 可删除现有数据库并创建一个带有视图和触发器的新数据库 所以我有字符串myDB OLD分布在许多行代码中 我想将这些字符串的出现次数更改为myDB NEW 我
  • Google reCAPTCHA、405 错误和 CORS 问题

    我正在使用 AngularJS 并尝试使用 Google 的 reCAPTCHA 我正在使用 显式呈现 reCAPTCHA 小部件 在我的网页上显示 reCAPTCHA 的方法 HTML 代码
  • 如何使用 ListView 呈现具有多个行跨列的数据表

    我需要在 html 表中显示数据库中的数据 我目前正在使用 ListView 控件 我希望最终的 HTML 表呈现如下所示的内容 其中某些行有一个rowspan属性大于一 原因是有些字段有几行信息 但对应同一个逻辑条目 例如 data da
  • 实现 Win32 消息循环并使用 P/Invoke 创建 Window 对象

    我的主要目标是纯粹使用以下方法实现正确的消息循环P Invoke http en wikipedia org wiki Platform Invocation Services能够处理 USB HID 事件的调用 当然 它的功能应该与以下代
  • vis.js - 如何运行 getSeed() 方法

    我正在使用 vis js 创建一些数据地图 在文档中它说 理想情况下 你尝试使用未定义的种子 重新加载 直到你满意为止 与布局并使用getSeed 确定种子的方法 然而 对于我的一生 我无法弄清楚如何 使用getSeed 方法 我认为它是一
  • 了解 Deferred.pipe()

    我一直在阅读有关 jQuery 中的 deferreds 和 Promise 的内容 但我还没有使用过它 除了方法管道之外 我已经很好地理解了一切 我实在没明白那是什么 有人可以帮助我了解它的作用以及它可以在哪里使用吗 我知道有一个问题的标