Обработка выполнения deferred.then()
deferred.then() — с помощью этого метода можно установить обработчики перехода объекта deferred в состояние удачного выполнения, ошибки выполнения (resolved или rejected). then() регистрирует 2 обработчика сразу.
Возможны три варианта использования функции
deferred.then( doneFilter [, failFilter ] [, progressFilter ] )
- doneFilter — функция, которая запустится, когда объект Deferred перейдёт в состояние неудачного выполнения (resolved);
- failFilter — функция, которая запустится, когда объект Deferred перейдёт в состояние удачного выполнения (rejected);
- progressFilter — функция, которая запустится, как только объекту Deferred будет выставлено одно из состояний.
deferred.then( doneCallbacks, failCallbacks )
- doneCallbacks — функция или массив функций обработчиков перехода объекта Deferred в состояние неудачного выполнения (resolved);
- failCallbacks — функция или массив функций обработчиков перехода объекта Deferred в состояние удачного выполнения (rejected).
deferred.then( doneCallbacks, failCallbacks [, progressCallbacks ] )
- doneCallbacks — функция или массив функций обработчиков перехода объекта Deferred в состояние неудачного выполнения (resolved);
- failCallbacks — функция или массив функций обработчиков перехода объекта Deferred в состояние удачного выполнения (rejected);
- progressCallbacks — функция, которая запустится, как только объекту Deferred будет выставлено одно из состояний.
Пример
Поскольку метод jQuery.get возвращает объект jqXHR, то к нему можно применить метод .then():
$.get( "test.php" ).then(
function() {
alert( "$.get succeeded" );
}, function() {
alert( "$.get failed!" );
}
);