【可用flash日历源码】【运气测试源码】【超星题库源码】jquery promise 源码

时间:2024-11-14 14:59:19 来源:清镇源码开发 编辑:ios spritekit游戏源码

1.jQuery中的Deferred和promise 的区别
2.JQuery 的 deferred . promise对象
3.jQuery中的Deferred和promise 的区别

jquery promise 源码

jQuery中的Deferred和promise 的区别

       ä¸€ä¸ªpromise就是一个由异步函数返回的对象。

       deferred对象就是jQuery的回调函数解决方案。

       æ€»ç»“

       jQuery 的ajax 就是返回一个promise 对象,里面含有done(), fail()方法; deferred 就是实现返回这个promise 对象的过程。

JQuery 的 deferred . promise对象

       你说的这段描述是对 jQuery(selector).promise()的描述,并不是 jQuery.Deferred() 的描述。

       原文是:

Return a Promise object to observe when all actions of a certain type bound to the collection, queued or not, have finished.

       而这段话是说:

jQuery(selector).promise() 函数是返回一个 Promise 对象,这个对象的可用flash日历源码作用是当绑定到集合也就是$('div')这样取到的集合的指定类型的所有动作(promise方法的第一个参数 type ,默认是fx,也就是动画)是否已经完成了。

       英文水平有限,有些地方看不怎么懂,这话说得有点乱,不过意思应该是这样的,举个例子:

$('#message')

       .animate({ width:,运气测试源码 height:}, )

       .promise()

       .done(function(){

           console.log('animate end');

       });

       也可以写成:

$('#message').animate({ width:, height:}, );

       var promise = $('#message').promise();

       promise.done(function(){

           console.log('animate end');

       });

       这里的 $('#message') 就是所说的collection,

       而动画 animate (即 fx)就是 certain type,

       里面的所有动作就是 action queue,当然,这里只有1个,就是超星题库源码默认的fx (但是文档中没有找到介绍其它的类型)。

       后面的 var promise = xxx 就是指返回的 Promise对象,这个对象在收到animate 方法里面的信号(这个信号包括 resolve, reject, notify, resolveWith, rejectWith, and notifyWith等)可以调用方法done(当然还有不少其它的方法,这里没用到就不说了,自己看文档吧),然后执行done的外卖源码购买回调函数了。

       animate方法会自己发送promise的信号,不用手动去处理。具体细节可以参考 jQuery.Deferred() 方法,在API的介绍中有这个方法的使用示例。

       需要注意的labview的源码是, jQuery(selector).promise()和jQuery.Deferred().promise()是不一样的。

       从目前我知道的来说,jQuery(selector).promise() 是专门用来处理jquery中的动画(animate)使用的,而jQuery.Deferred().promise()使用的范围更广,没看源码,不过猜一下,我觉得 jQuery(selector).promise()是jQuery在动画的时候对jQuery.Deferred().promise()的特殊实现(或者叫做功能封装)。

       然后再说一下jQuery.Deferred().promise()吧。它的一般用法为:

var defer= $.Deferred();

       $.when(defer.promise()).then<done|fail|....>(参数...)

       defer.resolve('传参数或留空');

       defer.reject('传参数或留空');

       defer.notify('传参数或留空');

       // ..... 其它信号

       实例请自己去看API页面。

       上面的defer是一个延迟对象(deferred)引用,表示这个对象的信号会在将来发出。

       接下来的 $.when(defer.promise()) 是指jQuery 要监视 defer的信号,收到信号后执行后面的then(或者done, fail或其它)的函数。而后面的defer.resolve<reject|notify>则是发出信号,通知jQuery延迟调用已经执行了,jQuery收到信号后,就去调用这个延迟的promise()后面的函数。

jQuery中的Deferred和promise 的区别

       一个promise就是一个由异步函数返回的对象。

       deferred对象就是jQuery的回调函数解决方案。

       总结

       jQuery

       的ajax

       就是返回一个promise

       对象,里面含有done(),

       fail()方法;

       deferred

       就是实现返回这个promise

       对象的过程。

copyright © 2016 powered by 皮皮网   sitemap