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 は 2 つの引数を取ります。1 つは完了コールバック、もう 1 つは失敗コールバックです (またはこれらの引数のいずれかが関数の配列になる可能性があるため、コールバック)。

このフィドルを参照してください: http://jsfiddle.net/Mrqf8/480/

于 2011-02-23T22:23:02.340 に答える