jQuery Deferred设置默认状态

时间:2013-02-25 23:38:16

标签: jquery ajax

考虑一个可能执行或不执行AJAX请求的函数。 $.ajax会返回Deferred个实例。对于可链接性,该函数应始终返回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等。它们将被链接如下:

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

如何设置新Deferred对象的默认状态?在这种情况下,设置为已解析状态,因此即使从未尝试过AJAX请求,也会立即触发done()回调。

1 个答案:

答案 0 :(得分:1)

return $.Deferred().resolve();

http://api.jquery.com/deferred.resolve/