русский  עברית
tadam logo
Нашли ошибку в тексте?
Отметьте её курсором и нажмите
Ctrl + Enter
Проверка орфографии Xhtml.co.il
Orphus system
Рассылка
Присоединитесь к списку рассылки для получения последних новостей

Введите адрес электронной почты:

promise( [тип,] [цель] )

Возвращает: Обещание
Описание: Возвращает объект Promise для наблюдения, когда все действия определенного типа связаны со сбором, находятся ли они в очереди или нет, закончены.

.promise( [тип,] [цель] )

Добавлена в версию: 1.6
тип
Тип очереди, которая должна соблюдаться.
цель
Объект, на который Обещанные методы должны быть приложены.

Метод .promise() возвращает динамически сгенерированный объект Promise, который будет решен, как только все действия определенного типа связаные со сбором, в очереди они или нет, закончились.

По умолчанию, тип равен "fx", это означает, что возвращенный объект Promise не будет решен, когда все анимации выбранных элементов выполненны.

Решением контекста и единственным аргументом является коллекция, на которую .promise() был вызван.

Если target представлен, .promise() присоединит методы на него, а затем вернет этот объект, а не создаст новый. Это может быть полезно для присоединения поведения к объекту, который уже создан.

Примечание: Возвращенный Promise связан с Отсроченным объектом, хранящимся на .data() для элемента. Поскольку метод .remove() удаляет данные элемента также как и сам элемент, он будет припятствовать от разрешения любых объектов Promise элементов. Необходимо удалить элемент из DOM до того как объект Promise решен, используйте .detach() вместо этого и используйте .removeData() после разрешения.

Примеры

Пример 1

Использование .promise() на коллекцию без активной анимации возвращает решенный Promise:

var div = $( "<div />" );

div
.promise().done(function( arg1 ) {
 
// will fire right away and alert "true"
  alert
( this === div && arg1 === div );
});

Пример 2

Решает возвращенный Promise когда все анимации законченны (в том числе начатый ​​в анимации обратного вызова или добавленный позже):
<!DOCTYPE html>
<html>
<head>
 
<style>
div
{
  height
: 50px; width: 50px;
 
float: left; margin-right: 10px;
  display
: none; background-color: #090;
}
</style>
 
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
 
<button>Go</button>
<p>Ready...</p>
<div></div>
<div></div>
<div></div>
<div></div>


<script>
$
("button").bind( "click", function() {
  $
("p").append( "Started...");
 
  $
("div").each(function( i ) {
    $
( this ).fadeIn().fadeOut( 1000 * (i+1) );
 
});

  $
( "div" ).promise().done(function() {
    $
( "p" ).append( " Finished! " );
 
});
});
</script>

</body>
</html>
Результат выполнения кода выше:

Пример 3

Решает возвращенный Promise используя $.when() (метод .promise() делает это возможным с коллекцией jQuery):
<!DOCTYPE html>
<html>
<head>
 
<style>
div
{
  height
: 50px; width: 50px;
 
float: left; margin-right: 10px;
  display
: none; background-color: #090;
}
</style>
 
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
 
<button>Go</button>
<p>Ready...</p>
<div></div>
<div></div>
<div></div>
<div></div>


<script>
var effect = function() {
 
return $("div").fadeIn(800).delay(1200).fadeOut();
};

$
("button").bind( "click", function() {
  $
("p").append( " Started... ");

  $
.when( effect() ).done(function() {
    $
("p").append(" Finished! ");
 
});
});

</script>

</body>
</html>
Результат выполнения кода выше:
Была ли эта информация полезной?
   

Комментарии