欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

jquery --- pip方法

发布时间:2023/12/10 54 豆豆
生活随笔 收集整理的这篇文章主要介绍了 jquery --- pip方法 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

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

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方法的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。