当then()
对象Deferred
被编辑时,好像reject
回调没有被触发。我的理解then()
应该执行Deferred
是否解决或拒绝。
以下是一个示例(open in a jsFiddle console)
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')});
答案 0 :(得分:4)
deferred.then接受两个参数 - 一个是完成回调,另一个是失败回调(或回调因为任何参数都可以是函数数组)。
看到这个小提琴:http://jsfiddle.net/Mrqf8/480/