[Функция] deferred.promise()
Раздел "Deferred"
Метод возвращает объект Promise для объекта Deferred, предназначенный для отслеживания объекта Deferred в методах then, done, fail, isResolved и isRejected
Метод deferred.promise() запрещает асинхронным функциям вмешиваться в процесс отслеживания объекта Deferred, реализуемый с помощью функций then, done, fail, isResolved и isRejected.
Метод deferred.promise() предназначен для отслеживания и установления связи с объектом deferred в методах then, done, fail, isResolved и isRejected.
Пример:
В следующем примере создаётся объект Deferred для функции asyncEvent, который отслеживается и методе then, в функциях обратного вызова, при этом, какой результат будет конечным - успешный или не успешный, заранее не известен, так как функция использует javascript интервал (setTimeout), второй параметр которого формируется на основе случайного числа.
"jQuery"
// Создание объекта Deferred его отслеживание через Promise
function asyncEvent(){
var dfd = new jQuery.Deferred();
setTimeout(function(){
dfd.resolve("успешно");
}, Math.floor(Math.random()*1500));
setTimeout(function(){
dfd.reject("неуспешно");
}, Math.floor(Math.random()*1500));
return dfd.promise();
}
// привязать функции обработчики для функции asyncEvent()
$.when( asyncEvent() ).then(
function(status){
alert( status+', завершён метод' );
},
function(status){
alert( status+', завершён метод' );
}
);
Версия jQuery 1.4.2
Документ создан 2010-08-21