# deferred.done()

所属分类：延迟对象 英文文档：deferred.done()

## deferred.done( doneCallbacks [, doneCallbacks ] )返回: Deferred

描述: 当Deferred（延迟）对象解决时，调用添加处理程序。

- #### 添加的版本: 1.5deferred.done( doneCallbacks [, doneCallbacks ] )

  - doneCallbacks
    类型: Function()
    一个函数，或者函数数组，当Deferred（延迟）对象得到解决时被调用。
  - doneCallbacks
    类型: Function()
    可选的一个函数，或者函数数组，当Deferred（延迟）对象得到解决时被调用。

`deferred.done()`方法接受一个或多个参数，所有这些都参数可以是一个单一的函数或一个函数数组。当Deferred（延迟）解决时，doneCallbacks被调用。回调是依照他们添加的顺序执行。一旦`deferred.done()`返回Deferred（延迟）对象，Deferred（延迟）可以链接其它的延迟对象，包括增加额外的`.done()`方法。当Deferred（延迟）解决，doneCallbacks执行，并且使用提供给`resolve`或`resolveWith`方法的参数，依照被添加的顺序调用。有关详细信息，请参阅文件Deferred（延迟） 对象 。

## 例子:

#### Example: 一旦`jQuery.get` 方法返回一个来自延迟的对象的jqXHR对象，我们可以附加一个成功回调使用`.done()` 方法。

1 2 3 |
    $.get("test.php").done(function() {  alert("$.get succeeded");});

#### Example: 当用户点击按钮时，受理延迟对象，触发一系列回调函数：

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
    <!DOCTYPE html><html><head>  <script src="https://code.jquery.com/jquery-latest.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").bind("click", function() {  dfd.resolve("and");});</script> </body></html>

#### Demo: