針對jquery的when方法做的應變

來源:互聯網
上載者:User

標籤:

需求: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方法做的應變

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.