オブジェクトが編集then()
されたときにコールバックが起動していないようです。解決するか拒否するかにかかわらず、実行する必要があるというのが私の理解でした。Deferred
reject
then()
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')});