jQuery объект Deferred
Объект Deferred был введен в версии jQuery 1.5, является специальным объектом с методами регистрации нескольких обратных вызовов в очереди обратного вызова, он создается путем вызова фабричной функции $.Deferred() (создает экземпляр объекта). Объект Deferred позволяет передавать состояние "success" или "failure" любой синхронной или асинхронной функции, что дает возможность зарегистрировать необходимые функции, которые будут вызваны при определенном условии .
После создания объекта Deferred можно использовать любой из приведенных ниже методов, связывая его непосредственно с объектом, либо сохраняя объект в отдельной переменной и вызывая один или несколько методов для этой переменной.
Синтаксис функции $.Deferred()
// без параметра let myDeferredObject = $.Deferred() // с указанием функции let myDeferredObject = $.Deferred( beforeStart ) beforeStart - Function( Deferred deferred )
Значение параметра
Параметр | Описание |
---|---|
beforeStart | Функция, которая вызывается непосредственно перед возвращением из конструктора объекта. Новый отложенный объект будет доступен как по this, так и в качестве первого аргумента функции. Вызываемая функция может присоединять обратные вызовы, например с помощью метода deferred.then(). |
Более подробную информацию и примеры использования вы можете получить в описании функции $.Deferred().
Методы объекта Deferred и функция $.Deferred()
Метод / функция | Описание |
---|---|
$.Deferred() | Фабричная функция, которая возвращает специальный объект с методами регистрации нескольких обратных вызовов в очереди обратного вызова, вызывает очереди обратного вызова и передает состояние "success" или "failure" любой синхронной или асинхронной функции. |
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 (выполнение отклонено), или находится на стадии выполнения. |
$.when() | Предоставляет способ выполнения функций обратного вызова на основе нуля или более объектов, имеющих метод .then(), как правило, объекты Deffered, которые представляют асинхронные события. |
.promise() | Возвращает динамически сгенерированный объект Promise для наблюдения за завершением всех действий определенного типа, связанных с коллекцией jQuery, поставленных в очередь или нет. |