2013-02-25 105 views
0

考慮一個可能執行或可能不執行AJAX請求的函數。 $.ajax返回Deferred實例。對於可鏈接性,該函數應始終返回Deferred實例。jQuery延遲設置默認狀態

doAjaxReq() 
    .done(function() { 
     doAjaxReq2() 
      .done(function() { 
       .... 
      }) 
     .fail(ajaxFailHandler) 
    }) 
    .fail(ajaxFailHandler); 

如何可以在新的Deferred對象的默認狀態設置爲:

function doAjaxReq() { 
    if (conditional_is_true) { 
     return (
       $.ajax(
       .... 
      ); 
     ); 
    } else { 
     // Create a Deferred instance 
     var deferred = $.Deferred(); 
     // Set the Deferred state to "done" 
     // ???? 
     return deferred; 
    } 
} 

想象其他一些類似的功能,如doAjaxReq2doAjaxReq3等,他們將在如下鏈接?在這種情況下,請設置爲已解決狀態,以便即使未嘗試AJAX請求,也會立即觸發done()回調。

回答