私は jQuery.Deferred を使用して、、およびハンドラーを登録してdone
いfail
ますthen
。
$.when( some_ajax(url) )
.done(function(result){})
.fail(function(){})
.then(function(){}); //just like that, with a single parameter
私のajax呼び出しが成功すると、この順序でコールバックが呼び出されることがわかりましdone
たthen
。ただし、ajax が失敗すると、fail
コールバックが呼び出されますが、コールバックに到達しませんthen
。
jQuery.Deferred のドキュメントを読みましたが、この動作の理由に関するヒントが見つかりませんでした。
always
の代わりに使用するとthen
、成功と失敗の両方の場合に呼び出されます (最初にdone
/fail
が呼び出され、次にalways
が呼び出されます)。always
ドキュメントは、私の説明したシナリオでとの間の予想される違いを示していないようですがthen
、なぜそれらは異なる動作をするのですか?