`

JQuery 的 deferred 对象及promise 操作

阅读更多

今天看EmberJS文档时,才发现,原来JQuery从1.5之后,提供了一个defered对象,用来简化异步和耗时的操作。

网上有篇文章解释得很清楚:

http://blog.allenm.me/2012/01/jquery_deferred_promise_method/

有了defered ,ajax 操作可以写成:

     $.ajax({url:....})

     .done(function(){....})

     .faile(function(){....});

 

defered 除了在Ajax 中应用外,也可以用在自定义方法中

     function wait5(dtd){

           var taskDone=function(){

                 ......

                dtd.resovle()

           }

           setTimeout(taskDone,5000);

          return dtd.promise()

     }

     $.Dererred(wait5)

      .done(function(){alert('success')})

       .faile(functin(){alert('fail')});

    

分享到:
评论

相关推荐

    深入解析jQuery中Deferred的deferred.promise()方法

    一个Deferred.Promise对象可以理解为是deferred对象的一个视图,它只包含deferred对象的一组方法,包括:done(),then(),fail(),isResolved(), isRejected(), always(),这些方法只能观察一个deferred的状态,而无法...

    以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题

    Promises是一种令代码异步行为更加优雅的抽象,它很有可能是JavaScript的下一个编程范式,一个Promise即表示任务结果,无论该...本文以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题,需要的朋友参考下

    jQuery中的Deferred和promise 的区别

    一个promise就是一个由 异步函数返回的对象 。当你想要自己编写一个这样的函数时你需要使用一个deferred。 var promise = $.ajax({ url: "/myServerScript" }); promise.done(mySuccessFunction); promise.fail...

    jQuery中的deferred对象和extend方法详解

    deferred对象是jQuery的回调函数解决方案,它是从jQuery1.5.0版本开始引入的功能 deferred对象的方法 (1) $.Deferred() 生成一个deferred对象。 (2) deferred.done() 指定操作成功时的回调函数 (3) deferred....

    jquery Deferred 快速解决异步回调的问题

    jquery Deferred 快速解决异步回调的问题 function ok(name){ var dfd = new $.Deferred(); callback:func(){ return dfd.resolve( response ); } return dfd.promise(); } $.when(ok(1),ok(2)).then(function...

    认识jQuery的Promise的具体使用方法

    先前了解了ES6的Promise对象,来看看jQuery中的Promise,也就是jQuery的Deferred对象。 打开浏览器的控制台先。 [removed] var defer = $.Deferred(); console.log(defer); [removed] 运行结果:   和ES6的...

    jQuery的promise与deferred对象在异步回调中的作用

    为了让前端们从回调的地狱中回到天堂, jQuery 也引入了 Promise 的概念。 Promise 是一种令代码异步行为更加优雅的抽象,有了它,我们就可以像写同步代码一样去写异步代码。 jQuery 从1.5版本开始实现了 CommonJS ...

    jQuery之Deferred对象详解

    jQuery的所有Ajax操作函数,默认返回的就是一个deferred对象。 Promises是什么 由于JavaScript单线程的特点,如果某个操作耗时很长,其他操作就必需排队等待。为了避免整个程序失去响应,通常的解决方法是将那些排在...

    jQuery Deferred和Promise创建响应式应用程序详细介绍

    接下来我们一起探索一下JavaScript中的 Deferred 和 Promise 的概念Deferred 提供了一个抽象的非阻塞的解决方案(如Ajax 请求的响应),它创建一个promise对象,其目的是在未来某个时间点返回一个响应,感兴趣的可以...

    reactive-promise:使 jQuery Deferred 承诺具有React性

    常见用例包括: 允许 Iron Router 路由等待一个或多个异步任务基于异步任务完成在模板中执行条件渲染使用Tracker.autorun在 promise 完成Tracker.autorun接执行当前版本v0.9.1用法对象与传统的回调模型非常相似,但...

    deferred:与jQuery的Deferred类似,但这是一个Promise包装器

    与jQuery的Deferred类似,但这是一个Promise包装器。 使用情况 var Deferred = require ( '@lenic/deferred' ) ; const deferred = Deferred ( ) ; deferred . promise . then ( v => console . log ( v ) , e => ...

    谈谈jQuery之Deferred源码剖析

    大约在夏季,我们谈过ES6的Promise,其实在ES6前jQuery早就有了Promise,也就是我们所知道的Deferred对象,宗旨当然也和ES6的Promise一样,通过链式调用,避免层层嵌套,如下: //jquery版本大于1.8 function ...

    jQuery.deferred对象使用详解

    jQuery1.5之前,如果需要多次Ajax操作,我们一般会使用下面的两种方式: 1).串行调用Ajax $.ajax({ success: function() { $.ajax({ success: function() { $.ajax({ //callbacks... }); }); }); 这种方式...

    在jQuery1.5中使用deferred对象 着放大镜看Promise

    引言在那篇经典的关于jQuery1.5中Deferred使用方法介绍的文章中(译文见这里),有下面一段描述: $.ajax() returns an object packed with other deferred-related methods. I discussed promise(), but you’ll ...

    http-jquery:经过测试的jQuery实用http工具功能

    异步GET请求:接受一个url和一个数据参数,并返回一个jQuery Deferred对象。 期望第三方返回JSON。 .getScript() 获取一个URL并返回一个Jqer期望第三方返回一个脚本 .getTemplate() 获取一个URL并返回一个...

Global site tag (gtag.js) - Google Analytics