码迷,mamicode.com
首页 > Web开发 > 详细

针对jquery的when方法做的应变

时间:2016-10-18 20:23:36      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:

需求:a,b两个任务都处理(不管a,b是成功还是失败)后,执行后面的任务。 
代码1: 

Java代码  技术分享
  1.     
  2. var leftResult = leftPromise.then(  
  3.     function (value) {      
  4.         console.info("jsonA end");  
  5.     }, function () {  
  6.         console.info("jsonA fail");  
  7.     }  
  8. );  
  9.    
  10. var rightResult = rightPromise.then(  
  11.     function (value) {  
  12.         console.info("jsonB end");  
  13.     }, function () {  
  14.         $("#jsonB").val("");  
  15.         console.info("jsonB fail");  
  16.     }  
  17. );  
  18.    
  19. $.when(leftResult, rightResult).always(  
  20.     function(){  
  21.         console.info("start compare");  
  22.     });  
  23.    


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

Java代码  技术分享
  1.     
  2. var leftResult = leftPromise.then(  
  3.     function (value) {      
  4.         console.info("jsonA end");  
  5.     }, function () {  
  6.         console.info("jsonA fail");  
  7.     }  
  8. ).always(  
  9.     function () {  
  10.         console.info("jsonA always");  
  11.         var d = $.Deferred();  
  12.         d.resolve();  
  13.         return d.promise();  
  14.     }  
  15. );  
  16. var rightResult = rightPromise.then(  
  17.     function (value) {  
  18.         console.info("jsonB end");  
  19.     }, function () {  
  20.         $("#jsonB").val("");  
  21.         console.info("jsonB fail");  
  22.     }  
  23. ).always(  
  24.     function () {  
  25.         console.info("jsonB always");  
  26.         var d = $.Deferred();  
  27.         d.resolve();  
  28.         return d.promise();  
  29.     }  
  30. );  
  31. $.when(leftResult, rightResult).always(  
  32.     function(){  
  33.         console.info("start compare");  
  34.     });  
  35.    


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

 

霹雳猿教程_-HTML教程-HTML 教程

 

霹雳猿教程_-HTML教程-HTML 简介

 

霹雳猿教程_-HTML教程-HTML 基础

 

霹雳猿教程_-HTML教程-HTML 元素

 

霹雳猿教程_-HTML教程-HTML 属性

 

霹雳猿教程_-HTML教程-HTML 标题

 

霹雳猿教程_-HTML教程-HTML 段落

 

霹雳猿教程_-HTML教程-HTML 链接

 

霹雳猿教程_-HTML教程-HTML 头部

 

霹雳猿教程_-HTML教程-HTML CSS

 

霹雳猿教程_-HTML教程-HTML 图像

针对jquery的when方法做的应变

标签:

原文地址:http://www.cnblogs.com/qingwengang/p/5974752.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!