труба () и затем () документация против реальности в jQuery 1.8

Update: This question is now out of date as the documentation is accurate and up to date.

Я некоторое время изучал API jQuery Deferred / Promise, и меня очень смущают различия междуpipe() а такжеthen() философски и в документации JQuery. Я обнаружил, что pipe () является просто псевдонимом для then () с jQuery 1.8.

Из источника jQuery:

// Keep pipe for back-compat
promise.pipe = promise.then;

Тем не менее, документация совершенно другая дляpipe() а такжеthen() поскольку они предположительно имеют совершенно другое использование.

Описание дляthen():

Description: Add handlers to be called when the Deferred object is resolved or rejected.

Описание дляpipe():

Description: Utility method to filter and/or chain Deferreds.

Я понимаю, что исторически они имели немного другое поведение, но в целомдокументация для трубы илидокументация на то, это даже не говорит о том, что эти две функции сейчас делают одно и то же.

Итак, вот мой вопрос из двух частей:

Why does the documentation between pipe() and then() differ as of jQuery 1.8? Why does then() return a new deferred object? This behavior is completely undocumented (the docs just say it returns a Deferred, not that it's a new one). I understand that it has utility in doing so (namely to implement all of pipe()'s features), but philosophically why is it the case? It's unnecessary given the description of then() (to attach handlers).

Update

Я даже пойду так далеко, что скажуthen() документы вводят в заблуждение и неточны:

Since deferred.then returns the deferred object, other methods of the deferred object can be chained to this one, including additional .then() methods.

Может быть, это просто расплывчато, но это подразумевает, что он возвращает отложенный объект, который вы назвалиthen() для цепочки, когда в действительности он возвращает совершенно новый объект ....

Update Again

Кажется, документация просто неверна / устарела! Так что это объясняет, почему в документации не упоминается, что это одно и то же. Тем не менее, мой второй вопрос остается в силе. Причинаthen() возвращаетnew отложено просто так, чтобы оно иpipe() можно сделать эквивалентным?

Ответы на вопрос(1)

Ваш ответ на вопрос