28

私は違いを理解しようとしています

$.when(...).then(...)

$.when(...).done(...)

jQueryで。私が理解している限り、それらは両方とも、内部のオブジェクトの読み込みが終了したときに実行されます。しかし、違いは何ですか。例は本当に高く評価されます。

4

1 に答える 1

32

.done()成功のコールバックのみがあります。

.then()成功と失敗の両方のコールバックがあります。

jQuery 1.8以降、このdeferred.then()メソッドは、関数を介して延期されたステータスと値をフィルタリングできる新しいpromiseを返し、現在は非推奨のdeferred.pipe()メソッドを置き換えます。

このdeferred.done()メソッドは1つ以上の引数を受け入れます。これらの引数はすべて、単一の関数または関数の配列のいずれかです。

遅延オブジェクトを返すのでdeferred.done()、追加のメソッドを含め、遅延オブジェクトの他のメソッドをこのオブジェクトにチェーンできます .done()。Deferredが解決されると、doneCallbacksは、resolveまたはresolveWithメソッド呼び出しに提供された引数を追加された順序で使用して実行されます。

于 2013-01-10T13:39:22.333 に答える