需求: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方法满足都成功就往下执行的条件。
分享到:
相关推荐
对于$.ajax请求来说,如果层级比较多,程序看起来会比较乱,而为了解决这种问题,才有了$when…done…fail…then的封装,它将$.ajax这嵌套结构转成了顺序平行的结果,向下面的$.ajax写法,看起来很乱 $.ajax({ url...
这个资源 可以使你全面的掌握 JQuery,里面有我告诉你如何学习Jquery如何使用Jquery,里面还有Jquery的例子,还有Jquery的拓展UI,很好很强大的!!!这绝对是我精心压缩的一个资源,如果没学会,可以给我留言,然后...
JavaScript 与 JQuery 的方法总结
`jQuery1.11.0_20140330.chm`可能是早期版本的jQuery API参考,而`jQueryAPI_CHM.CHM`则是针对jQuery 1.x系列的API手册,可能包含了1.12.4版本的相关信息。 在这些API文档中,你可以找到jQuery的函数、方法、选择器...
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.common通用方法详解》 在Web开发领域,jQuery库以其简洁、易用的API深受开发者喜爱。jQuery.common就是一种常见的做法,它将常用的jQuery方法进行封装,形成一个通用的方法集合,以方便开发者在项目中复用...
本文实例讲述了jQuery延迟执行的实现方法。分享给大家供大家参考,具体如下: 做一个控件时碰到的一些无法同步处理的事件,可以用这样的延迟方法。 <html> [removed][removed] [removed] $(function(){ $('#...
1. **性能提升**:在 1.4.1 版本中,jQuery 团队专注于提高库的性能,特别是针对 DOM 操作和事件处理进行了优化。 2. **新的选择器引擎Sizzle**:这个版本引入了 Sizzle,一个独立的选择器引擎,增强了 jQuery 的 ...
解决其他js和jquery冲突方法 JS和jQuery是两个非常常用的JavaScript库,但是当它们一起使用时,可能会出现冲突。解决这种冲突的方法是使用noConflict()方法将变量$的控制权让渡给其他库。 在开发过程中,可能还会...
在“jQuery例子大全 jQuery demo”这个压缩包中,包含了一系列的示例,旨在帮助用户快速理解和掌握jQuery的核心概念及常用方法。** ### 一、jQuery 基本使用 jQuery 的核心在于它的选择器,它允许我们方便地选取...
本系列资源主要是针对jQuery的相关知识点做一个类似提纲似的提炼,画出了一个十分完整的jQuery思维导图,一来可以作为今后温故知新的参照;二来也是希望能够帮助大家更加系统清晰的理解jQuery这门语言。欢迎下载
2. **DOM操作**:jQuery 提供了一系列方法,如`$(document).ready()`来替代body标签的onload事件,确保DOM加载完毕后执行代码。`$("#msg").show("fast")`和`.hide("slow")`等方法实现了元素的渐入渐出效果。 3. **...
**jQuery 1.8.3_20121215.apk** 可能是针对Android设备的应用程序,方便开发者在移动设备上查阅jQuery文档。 - 对于移动开发者,能够在手机或平板上快速查找API和示例,提高了开发效率。 **jQuery 1.8.3_20121215....
例如,通过添加事件监听器,我们可以使表格单元格变为可编辑状态,用户输入后,再利用jQuery的`.val()`方法获取或设置值,并通过Ajax与服务器进行数据同步,从而实现动态编辑表格的功能。 接下来,"div制作弹出窗口...
这些方法可以在任何地方调用,而不仅仅是针对 jQuery 对象或元素集合。例如: ```javascript jQuery.extend({ sum: function(a, b) { return a + b; }, max: function(a, b) { return a > b ? a : b; } }); ...
jQuery是一个快速、简洁的JavaScript库,其设计宗旨是“写得更少,做得更多”。通过封装了大量的常用操作,jQuery简化了HTML文档遍历、事件处理、动画以及Ajax交互等功能。本文将深入分析jQuery.js的核心执行流程,...
"jquery-1.12.4-jquery.min.js.zip"是一个包含jQuery 1.12.4精简版(minified)的压缩包,这个版本是针对生产环境优化过的,体积小但功能强大。 jQuery 1.12.4.min.js的核心特性包括: 1. **DOM操作**:jQuery ...
jquery 精简版 jquery 精简版 jquery 精简版jquery 精简版 jquery 精简版 jquery 精简版 jquery 精简版
在jQuery 3.x中,这个方法也被移除,因为它与JavaScript的原生`Array.isArray()`方法功能重叠。现在推荐直接使用原生的`Array.isArray()`来检查一个变量是否为数组类型。 ### 4. jQuery API 的变化 虽然`jQuery....