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);
});