2

似乎在编辑对象then()时回调没有触发。我的理解是无论解决还是拒绝都应该执行。Deferredrejectthen()Deferred

这是一个示例(在 jsFiddle 控制台中打开

var doDfd = function(input){
    var dfd = $.Deferred();

    if(input == 'fail'){
        dfd.reject();
    }
    else{
        dfd.resolve();
    }     

    return dfd.promise();
}


doDfd('fail')
    .done(function(r){console.log('success')})
    .fail(function(r){console.log('fail')})
    .then(function(r){console.log('then logic')});
​
4

1 回答 1

4

deferred.then 接受两个参数 - 一个是完成回调,另一个是失败回调(或回调,因为这些参数中的任何一个都可以是函数数组)。

看到这个小提琴:http: //jsfiddle.net/Mrqf8/480/

于 2011-02-23T22:23:02.340 回答