【问题标题】:jQuery.Deferred "then" callback giving unexpected behaviorjQuery.Deferred "then" 回调给出意外行为
【发布时间】:2011-02-23 21:30:59
【问题描述】:

当Deferred 对象是rejected 时,似乎then() 回调没有触发。我的理解是 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')});
​

【问题讨论】:

    标签: javascript jquery jquery-deferred


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-05
      • 2017-01-10
      • 1970-01-01
      • 2020-01-21
      • 2016-03-05
      相关资源
      最近更新 更多