.promise()

Создает заместителя deferred-объекта (объект с аналогичным набором методов, за исключением отсутствия методов изменения состояния объекта. Предоставление заместителя вместо исходного объекта, гарантирует, что его состояние нельзя будет изменить из вне).

deferred.then()

С помощью этого метода можно установить обработчики перехода объекта deferred в состояние удачного выполнения, ошибки выполнения (resolved или rejected). then() регистрирует 2 обработчика сразу.

jQuery.Deferred()

Фабричная функция, которая возвращает служебный объект с методами регистрации нескольких обратных вызовов в очереди обратного вызова, вызова очереди колбэков и передаи состояние success или failure любой синхронной или асинхронной функции.

jQuery.when()

На основе нескольких заданных объектов (обычно deferred), функция $.when() создает новый deferred-объект, следящий за состоянием всех заданных. Стоит уточнить, что $.when() возвращает promise-версию (заместителя) deferred-объекта.