always()
Метод deferred.always()
устанавливает обработчик, который запустится при переходе Deferred-объекта в любое состояние (выполнено
или отклонено
). Арументом можно указать сразу несколько обработчиков в виде массива.
Когда Deferred-объект перейдёт в состояние выполнено
или отклонено
, будут запущены все обработчики, установленные с помощью deferred.always()
. Данный метод возвращает тот же Deferred-объект, поэтому его можно использовать в цепочке методов. Всем обработчикам будут переданы аргументы, указанные при вызове resolve()
или reject()
.
Методы resolve()
и reject()
могут передавать совершенно разные аргументы. Если есть необходимость обрабатывать эти аргументы, лучше устанавливать отдельно обработчики для состояний выполнено
и отклонено
(методами done()
и fail()
) с однозначной интерпретацией аргументов.
Варианты использования
deferred.always(обработчик[, обработчик]) => Deferred
- Устанавливает обработчики, запускаемые при смене состояния Deferred-объекта. Можно использовать один или два аргумента, каждый из которых может быть как отдельной функцией, так и массивом функций.
Примеры
var defr = $.Deferred(); /* Установка общего обработчика */ defr.always(function() { alert('Объект сменил состояние'); });