jQuery.Deferred()

Конструктор jQuery.Deferred() используется для создания Deferred-объектов. Оператор new указывать не обязательно.

Аргументом метода $.Deferred() можно указать функцию, которая запустится перед возвращением нового Deferred-объекта. Этот же объект доступен внутри функции в переменной this, а также он передаётся в функцию первым аргументом. Это позволяет выполнить некоторые манипуляции с новым Deferred-объектом (например, установить обработчики смены состояния) сразу при его создании.

Deferred-объект после создания находится в состоянии ожидание. Все обработчики смены состояния, установленные с помощью соответствующих методов, помещаются в очередь для последующего запуска. Вызов методов, меняющих состояние Deferred-объекта, приводит к запуску обработчиков нового состояния. После смены состояния на выполнено или отклонено объект остаётся в этом состоянии навсегда. При этом обработчики смены состояния по-прежнему можно устанавливать. Они будут выполняться немедленно.

Варианты использования

jQuery.Deferred([функция]) => Deferred
Возвращает новый Deferred-объект. Необязательным аргументом можно указать функцию для выполнения манипуляций с Deferred-объектом непосредственно перед его возвращением.

Примеры

/* Создание стандартного Deferred-объекта */
var defr = $.Deferred();

/* Создание Deferred-объекта с установленными обработчиками */
var defr = $.Deferred(function() {
  this.done(doneCallback);
  this.fail(failCallback);
});