Spec-Zone.ru › jQuery

deferred.done()

deferred.done( doneCallbacks [, doneCallbacks ] )Возвращает: Deferred

Описание: Добавляет обработчики, которые вызываются, когда объект Deferred разрешен.

  • версия добавлена: 1.5deferred.done( doneCallbacks [, doneCallbacks ] )

    • doneCallbacks
      Тип: Функция()
      Функция или массив функций, которые вызываются, когда Deferred разрешён.
    • doneCallbacks
      Тип: Функция()
      Дополнительные необязательные функции или массивы функций, которые вызываются, когда Deferred разрешён.

Метод deferred.done() принимает один или несколько аргументов, каждый из которых может быть отдельной функцией или массивом функций. Когда Deferred разрешен, вызываются doneCallbacks. Обработчики выполняются в порядке их добавления. Так как deferred.done() возвращает объект deferred, к этому методу можно прицепить другие методы объекта deferred, включая дополнительные .done() методы. Когда Deferred разрешен, doneCallbacks выполняются с использованием аргументов, предоставленных методу resolve или resolveWith в порядке их добавления. Дополнительную информацию см. в документации для объекта Deferred.

Примеры:

Поскольку метод jQuery.get возвращает объект jqXHR, который происходит от объекта Deferred, мы можем добавить обработчик успеха, используя метод .done().

$.get( "test.php" ).done(function() {
  alert( "$.get succeeded" );
});

Разрешить объект Deferred, когда пользователь нажимает на кнопку, вызывая несколько функций обратного вызова:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>deferred.done demo</title>
  <script src="https://code.jquery.com/jquery-3.7.0.js"></script>
</head>
<body>
 
<button>Go</button>
<p>Ready...</p>
 
<script>
// 3 functions to call when the Deferred object is resolved
function fn1() {
  $( "p" ).append( " 1 " );
}
function fn2() {
  $( "p" ).append( " 2 " );
}
function fn3( n ) {
  $( "p" ).append( n + " 3 " + n );
}
 
// Create a deferred object
var dfd = $.Deferred();
 
// Add handlers to be called when dfd is resolved
dfd
// .done() can take any number of functions or arrays of functions
  .done( [ fn1, fn2 ], fn3, [ fn2, fn1 ] )
// We can chain done methods, too
  .done(function( n ) {
    $( "p" ).append( n + " we're done." );
  });
 
// Resolve the Deferred object when the button is clicked
$( "button" ).on( "click", function() {
  dfd.resolve( "and" );
});
</script>
 
</body>
</html>

Демо:

© The jQuery Foundation and other contributors
Licensed under the MIT License.
https://api.jquery.com/deferred.done

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API