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