3
jQuery deferredの「then」メソッドをいつ使用する必要がありますか。「pipe」メソッドをいつ使用する必要がありますか?
jQueryにDeferredは、関数の非同期チェーンを実装するために使用できる2つの関数があります。 then() deferred.then( doneCallbacks, failCallbacks ) Returns: Deferred doneCallbacks Deferredが解決されたときに呼び出される関数または関数の配列。 failCallbacks Deferredが拒否されたときに呼び出される関数または関数の配列。 pipe() deferred.pipe( [doneFilter] [, failFilter] ) Returns: Promise doneFilter Deferredが解決されたときに呼び出されるオプションの関数。 failFilter Deferredが拒否されたときに呼び出されるオプションの関数。 私then()はもう少し長いことを知っているpipe()ので、後者はいくつかの追加の利点を追加する必要がありますが、その違いは正確にはわかりません。名前は異なりますが、a Deferredを返すことPromiseとa を返すことの違いはわずかに見えますが、どちらもほとんど同じコールバックパラメータを取ります。 私は何度も公式ドキュメントを読みましたが、常に「密度が高すぎて」本当に頭を抱えこむことができず、検索で1つの機能または他の機能に関する多くの議論が見つかりましたが、違いを明確にするものは何も見つかりませんでした。それぞれの長所と短所。 それで、いつ使用thenするのが良いのpipeですか、いつ使用するのが良いのですか? 添加 Felixの優れた答えは、これら2つの機能の違いを明確にするのに役立ちました。しかし、の機能がの機能よりthen()も望ましい場合があるのでしょうかpipe()。 pipe()がより強力であることは明らかでthen()、前者は後者ができることは何でもできるようです。使用する理由の1つはthen()、その名前が、同じデータを処理する一連の関数の終了としての役割を反映していることです。 しかし、新しいものを返すために実行できないthen()元のものを返す必要があるユースケースはありますか?Deferredpipe()Promise