回调函数,优化回调

$.Callbacks(['once']或者['memory']或者['unique']或者['stopOnFalse'])返回一个回调对象

假设用cb接收,cb.add(函数1,函数2)。

cb.fire()执行存的函数。可以传参。

创建cb对象的时候,加了memory,会记住存的函数,不管在哪fire,都会执行cb里所有函数

加unique,同样的函数只会执行一次。

加stopOnFalse,碰到返回false的函数,结束执行。

JS单线程,异步编程优化,防止阻塞界面。

var df = $.Deferred()延迟对象

不用传参,有三种状态,done,fail,progress。分别有resolve,reject,notify触发。

用类似这种形式存注册的回调函数        df.done(function(参数){})    也可以链式调用注册。同一类型,可以注册多个。

简化注册df.then(函数1,函数2,函数3)分别是done,fail,progress

然后用相应的                  df.resolve(自定义参数)触发

.then()注册函数的返回值,会作为链式调用下次.then里相应函数的参数。  可以通过在每个注册函数中创建新的$.deferred(),并返回相应的.promise(),作为下次then()注册函数的目标

return  df.promise()返回注册功能

图片发自简书App
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • jQuery的deferred对象详解 作者: 阮一峰 日期: 2011年8月16日 jQuery的开发速度很快...
    nico1988阅读 1,607评论 0 1
  • jQuery的deferred对象详解 作者:阮一峰 一、什么是deferred对象? 开发网站的过程中,我们经常...
    JamHsiao_aaa4阅读 326评论 0 0
  • 一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有...
    你为什么无理取闹阅读 404评论 0 4
  • 源代码 deffered的使用说明() ajax的使用 运行代码示例在上面的代码中,$.ajax()接受一个对象参...
    YAMI_1d00阅读 415评论 0 0
  • 抽象来说,deferreds 可以理解为表示需要长时间才能完成的耗时操作的一种方式,相比于阻塞式函数它们是异步的,...
    北方蜘蛛阅读 1,570评论 1 5