2013-02-25 114 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()回调。

回答