`

针对jquery的when方法做的应变

阅读更多
需求:a,b两个任务都处理(不管a,b是成功还是失败)后,执行后面的任务。
代码1:
  
var leftResult = leftPromise.then(
    function (value) {    
        console.info("jsonA end");
    }, function () {
        console.info("jsonA fail");
    }
);
 
var rightResult = rightPromise.then(
    function (value) {
        console.info("jsonB end");
    }, function () {
        $("#jsonB").val("");
        console.info("jsonB fail");
    }
);
 
$.when(leftResult, rightResult).always(
    function(){
        console.info("start compare");
    });
 

  可能出现a任务失败后,直接执行后面的任务了
when方法的定义就是任意失败,或者全部成功就往下执行。怎么办呢?
通过一个always的包装解决:


  
var leftResult = leftPromise.then(
    function (value) {    
        console.info("jsonA end");
    }, function () {
        console.info("jsonA fail");
    }
).always(
    function () {
        console.info("jsonA always");
        var d = $.Deferred();
        d.resolve();
        return d.promise();
    }
);
var rightResult = rightPromise.then(
    function (value) {
        console.info("jsonB end");
    }, function () {
        $("#jsonB").val("");
        console.info("jsonB fail");
    }
).always(
    function () {
        console.info("jsonB always");
        var d = $.Deferred();
        d.resolve();
        return d.promise();
    }
);
$.when(leftResult, rightResult).always(
    function(){
        console.info("start compare");
    });
 

这里的重点是then后面有个always,always方法返回的一定是成功的,让when方法满足都成功就往下执行的条件。





0
1
分享到:
评论

相关推荐

    Jquery $when done then的用法详解

    对于$.ajax请求来说,如果层级比较多,程序看起来会比较乱,而为了解决这种问题,才有了$when…done…fail…then的封装,它将$.ajax这嵌套结构转成了顺序平行的结果,向下面的$.ajax写法,看起来很乱 $.ajax({ url...

    JqueryApi Jquery实例 Jquery归纳 Jquery学习方法

    这个资源 可以使你全面的掌握 JQuery,里面有我告诉你如何学习Jquery如何使用Jquery,里面还有Jquery的例子,还有Jquery的拓展UI,很好很强大的!!!这绝对是我精心压缩的一个资源,如果没学会,可以给我留言,然后...

    JavaScript 与 JQuery 的方法总结

    JavaScript 与 JQuery 的方法总结

    jQuery1.12.4+jQuery中文手册.rar

    `jQuery1.11.0_20140330.chm`可能是早期版本的jQuery API参考,而`jQueryAPI_CHM.CHM`则是针对jQuery 1.x系列的API手册,可能包含了1.12.4版本的相关信息。 在这些API文档中,你可以找到jQuery的函数、方法、选择器...

    jQueryTree使用方法

    jquery.js,jquery.cookie.js,jquery.treeview.js,jquery.treeview.async.js四个库文件,其中最后一个是要使用异步加载结点的时候,要用到的,我的项目中已经用到了这个功能,在初始化树的时候,只加载顶层的数据,当...

    jquery-3.7.0.min.js(jQuery下载)

    jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)...

    jquery.common通用方法

    《jQuery.common通用方法详解》 在Web开发领域,jQuery库以其简洁、易用的API深受开发者喜爱。jQuery.common就是一种常见的做法,它将常用的jQuery方法进行封装,形成一个通用的方法集合,以方便开发者在项目中复用...

    jquery操作asp.net中GridView方法

    Highlight GridView Rows when Checkbox is checked using jQuery Highlight Negative value columns in ASP.NET GridView using jQuery Searching and Filtering Related How to loop through all grid ...

    jQuery延迟执行的实现方法

    本文实例讲述了jQuery延迟执行的实现方法。分享给大家供大家参考,具体如下: 做一个控件时碰到的一些无法同步处理的事件,可以用这样的延迟方法。 <html> [removed][removed] [removed] $(function(){ $('#...

    JQuery1.4.1与JQuery1.8.3

    1. **性能提升**:在 1.4.1 版本中,jQuery 团队专注于提高库的性能,特别是针对 DOM 操作和事件处理进行了优化。 2. **新的选择器引擎Sizzle**:这个版本引入了 Sizzle,一个独立的选择器引擎,增强了 jQuery 的 ...

    解决其他js和jquery冲突方法

    解决其他js和jquery冲突方法 JS和jQuery是两个非常常用的JavaScript库,但是当它们一起使用时,可能会出现冲突。解决这种冲突的方法是使用noConflict()方法将变量$的控制权让渡给其他库。 在开发过程中,可能还会...

    jquery例子大全 jquery demo

    在“jQuery例子大全 jQuery demo”这个压缩包中,包含了一系列的示例,旨在帮助用户快速理解和掌握jQuery的核心概念及常用方法。** ### 一、jQuery 基本使用 jQuery 的核心在于它的选择器,它允许我们方便地选取...

    完整jquery思维导图/框架图

    本系列资源主要是针对jQuery的相关知识点做一个类似提纲似的提炼,画出了一个十分完整的jQuery思维导图,一来可以作为今后温故知新的参照;二来也是希望能够帮助大家更加系统清晰的理解jQuery这门语言。欢迎下载

    jquery插件使用方法大全

    2. **DOM操作**:jQuery 提供了一系列方法,如`$(document).ready()`来替代body标签的onload事件,确保DOM加载完毕后执行代码。`$("#msg").show("fast")`和`.hide("slow")`等方法实现了元素的渐入渐出效果。 3. **...

    jquery中文版离线手册

    **jQuery 1.8.3_20121215.apk** 可能是针对Android设备的应用程序,方便开发者在移动设备上查阅jQuery文档。 - 对于移动开发者,能够在手机或平板上快速查找API和示例,提高了开发效率。 **jQuery 1.8.3_20121215....

    经典jquery案例 经典jquery

    例如,通过添加事件监听器,我们可以使表格单元格变为可编辑状态,用户输入后,再利用jQuery的`.val()`方法获取或设置值,并通过Ajax与服务器进行数据同步,从而实现动态编辑表格的功能。 接下来,"div制作弹出窗口...

    第十四课 扩展jquery方法-011

    这些方法可以在任何地方调用,而不仅仅是针对 jQuery 对象或元素集合。例如: ```javascript jQuery.extend({ sum: function(a, b) { return a + b; }, max: function(a, b) { return a > b ? a : b; } }); ...

    jQuery.js执行过程分析

    jQuery是一个快速、简洁的JavaScript库,其设计宗旨是“写得更少,做得更多”。通过封装了大量的常用操作,jQuery简化了HTML文档遍历、事件处理、动画以及Ajax交互等功能。本文将深入分析jQuery.js的核心执行流程,...

    jquery-1.12.4-jquery.min.js.zip

    "jquery-1.12.4-jquery.min.js.zip"是一个包含jQuery 1.12.4精简版(minified)的压缩包,这个版本是针对生产环境优化过的,体积小但功能强大。 jQuery 1.12.4.min.js的核心特性包括: 1. **DOM操作**:jQuery ...

    jquery精简版jquery-small.js

    jquery 精简版 jquery 精简版 jquery 精简版jquery 精简版 jquery 精简版 jquery 精简版 jquery 精简版

Global site tag (gtag.js) - Google Analytics