我们先来看下面一个例子:

var getPromise = $.get('/query');
getPromise.done(function(data) {var postPromise = $.post('/search', data);
});
// ...无法在此处给postPromise方法附加处理器// 上面先使用get方法读取url为query的数据,在完成后,再使用post方法将数据发送给另一个url(/search);
// 问题在于,如果我们想给postPromise附加一个处理器,,,,
// emmm会发现,在get方法获取数据之前,我们是无法在最外层给postPromise添加处理器的..

解决方法:

// 幸运的是jQuery1.6版本以上新增了pipe方法,可以让我们(逻辑上)提前的使用get的数据,如下
var getPromise = $.gert('/query');
var postPromise = getPromise.pipe(function (data){return $.post('/search', data);
});// 注:自处的data就是get方法请求的返回的数据,现在在逻辑上提前的使用它..

妙用:

// 管道(pipe)级联技术..
// 使用pipe可以不费吹灰之力地定义异步的分化逻辑.如下例:
var step1 = $.post('/step1', data1);
var step2 = step1.pipe(function() {return $.post('step2', data2);
});
var step3 = step2.pipe(function() {return $.post('/step3', data3);
});// 上述代码,如果step1,执行失败,那么step2 和 step3都将拒绝执行,
// 如果step2执行失败,step3将拒绝执行
// 就像一条管道一样,将异步操作,从step1到step3依次执行// 另外一种写法(只在乎整体进程)
var posting = $.post('/step1', data1).pipe(function(){return $.post('/step2', data2);}).pipe(function() {return $.post('/step3', data3);});

参考《JavaScript异步编程》— 设计快速响应的网络应用 P59~P62

jquery --- pip方法相关推荐

  1. jQuery 事件方法大全

    Dom : Attribute:$("p").addClass(css中定义的样式类型); 给某个元素添加样式$("img").attr({src:" ...

  2. jQuery on()方法

    jQuery on()方法是官方推荐的绑定事件的一个方法. $(selector).on(event,childSelector,data,function,map) 由此扩展开来的几个以前常见的方法 ...

  3. JQuery Attributes 方法说明

    转:http://blog.sina.com.cn/s/blog_5ea2cb7e0100c4cx.html JQuery Attributes 方法说明(2009-02-17 01:02:33) 标 ...

  4. Jquery getJSON方法分析(一)

    准备工作 ·Customer类 public class Customer {     public int Unid { get; set; }     public string Customer ...

  5. jQuery 遍历方法

    jQuery 遍历方法 方法 描述 add() 把元素添加到匹配元素的集合中 addBack() 把之前的元素集添加到当前集合中 andSelf() 在版本 1.8 中被废弃.addBack() 的别 ...

  6. Windows 10安装pip方法

    pip是一款非常方便的python包管理工具,本文主要介绍在windows 10下安装pip方法. 1. 下载pip 地址:https://pypi.python.org/pypi/pip#downl ...

  7. jquery ajax html方法吗,jQuery ajax方法

    jQuery AJAX 方法 jQuery load() 方法是简单强大的AJAX方法.从服务器加载数据,并将数据显示在被选中元素中. 语法: $(selector).load(URL,data,ca ...

  8. jquery订阅发布插件代码草稿,为jquery扩展jquery.publish,jquery.subscribe方法

    jquery订阅发布插件代码草稿! jquery订阅发布插件代码草稿,为jquery扩展jquery.publish,jquery.subscribe方法 --- jquery订阅发布插件代码草稿 & ...

  9. jQuery Css方法

    jQuery css() 方法 css() 方法设置或返回被选元素的一个或多个样式属性. 返回 CSS 属性 如需返回指定的 CSS 属性的值,请使用如下语法: css("propertyn ...

最新文章

  1. 支持向量机原理(五)线性支持回归
  2. Redis进阶-bind参数详解
  3. zblog php 侧边栏样式,ZBlogPHP免费主题Blogs如何修改侧边栏搜索框样式?
  4. scala Ordering
  5. siege4安装和使用介绍
  6. SAP License:SAP概念辨识
  7. ICPC程序设计题解书籍系列之二:刘汝佳:《算法竞赛入门经典训练指南》
  8. 客户商品生命周期应用
  9. 在ASP.NET 2.0中操作数据:使用FormView 的模板
  10. ICCV 2021可逆的跨空间映射实现多样化的图像风格传输:Diverse Image Style Transfer via Invertible Cross-Space Mapping
  11. 【2020年】CRISPR基因编辑技术最新进展盘点解读
  12. 保角变换法matlab编程,保角变换法.ppt
  13. python对比excel重复数据_Python-查找excel文档中的重复数据
  14. 19年6月六级翻译词汇
  15. k8s之四层负载均衡Service:概念、原理解读
  16. 【19】processing-硬件(中文)
  17. GYM 101173 K.Key Knocking(构造)
  18. 黑客常用dos命令详解
  19. 中国农历(阴阳历)和西元阳历即公历互转JavaScript库
  20. Android与鸿蒙系统安全(一)

热门文章

  1. 鸿蒙系统下拉菜单,鸿蒙的js开发部模式17:鸿蒙的系统能力的应用模块
  2. python tkinter 弹窗_tkinter主窗口和子窗口同时弹出该怎么办?
  3. 最大子序列求和_算法——求最大子段和
  4. oracle装了客户端怎么登陆账号,分享Oracle 11G Client 客户端安装步骤(图文详解)...
  5. Tensorflow一些常用基本概念与函数
  6. iOS开发中手势处理简介(二)
  7. iMX6开发板-uboot-网络设置和测试
  8. 支付宝APP支付 统一下单 php服务端 tp5
  9. [数据结构] - ArrayList探究
  10. java Calendar