jQuery объект Deferred

Объект Deferred был введен в версии jQuery 1.5, является специальным объектом с методами регистрации нескольких обратных вызовов в очереди обратного вызова, он создается путем вызова фабричной функции $.Deferred() (создает экземпляр объекта). Объект Deferred позволяет передавать состояние "success" или "failure" любой синхронной или асинхронной функции, что дает возможность зарегистрировать необходимые функции, которые будут вызваны при определенном условии .

После создания объекта Deferred можно использовать любой из приведенных ниже методов, связывая его непосредственно с объектом, либо сохраняя объект в отдельной переменной и вызывая один или несколько методов для этой переменной.

Методы объекта Deferred

МетодОписание
deferred.always()Добавляет обработчик или обработчики, которые будут вызваны при изменении состояния объекта Deffered на resolved (успешное выполнение), или rejected (выполнение отклонено).
deferred.catch()Добавляет обработчик или обработчики, которые будут вызваны при изменении состояния объекта Deffered на rejected (выполнение отклонено).
deferred.done()Добавляет обработчик или обработчики, которые будут вызваны при изменении состояния объекта Deffered на resolved (успешное выполнение).
deferred.fail()Добавляет обработчик или обработчики, которые будут вызваны при изменении состояния объекта Deffered на rejected (выполнение отклонено).
deferred.notify()Запускает событие прогресса выполнения с определенными аргументами, которое позволяет вызвать обработчики состояния объекта Deffered, находящегося на стадии выполнения (deferred.progress() и deferred.then()).
deferred.notifyWith()Запускает событие прогресса выполнения с определенными аргументами и контекстом выполнения, которое позволяет вызвать обработчики состояния объекта Deffered, находящегося на стадии выполнения (deferred.progress() и deferred.then()).
deferred.progress()Добавляет обработчик или обработчики, вызываемые когда объект Deffered создает уведомления о ходе выполнения.
deferred.promise()Возвращает копию объекта Deffered (объект Promise), который имеет аналогичный набор методов, за исключением методов изменения состояния объекта.
deferred.reject()Изменяет состояние объекта Deffered на rejected (выполнение отклонено) и вызывает любые, предназначенные для подобных ситуаций функции обратного вызова (failCallbacks) с заданными аргументами.
deferred.rejectWith()Изменяет состояние объекта Deffered на rejected (выполнение отклонено) и вызывает любые, предназначенные для подобных ситуаций функции обратного вызова (failCallbacks) с заданным контекстом и аргументами.
deferred.resolve()Изменяет состояние объекта Deffered на resolved (успешное выполнение) и вызывает любые, предназначенные для подобных ситуаций функции обратного вызова (doneCallbacks) с заданными аргументами.
deferred.resolveWith()Изменяет состояние объекта Deffered на resolved (успешное выполнение) и вызывает любые, предназначенные для подобных ситуаций функции обратного вызова (doneCallbacks) с заданным контекстом и аргументами.
deferred.state()Определяет текущее состояние выполнения объекта Deffered.
deferred.then()Добавляет обработчик или обработчики, вызываемые когда объект Deffered имеет состояние resolved (успешное выполнение), rejected (выполнение отклонено), или находится на стадии выполнения.
$.Deferred() Фабричная функция, которая возвращает специальный объект с методами регистрации нескольких обратных вызовов в очереди обратного вызова, вызывает очереди обратного вызова и передает состояние "success" или "failure" любой синхронной или асинхронной функции.
$.when()Предоставляет способ выполнения функций обратного вызова на основе нуля или более объектов, имеющих метод .then(), как правило, объекты Deffered, которые представляют асинхронные события.
.promise()Возвращает динамически сгенерированный объект Promise для наблюдения за завершением всех действий определенного типа, связанных с коллекцией jQuery, поставленных в очередь или нет.