deferred.done()
当Deferred对象解决时,调用的处理程序。
deferred.done(doneCallbacks[, doneCallbacks ])
- doneCallbacks类型:Function()。一个函数,或者函数数组,当Deferred对象得到解决时被调用。
- doneCallbacks类型:Function()。可选的一个函数,或者函数数组,当Deferred对象得到解决时被调用。
deferred.done()
方法接受一个或多个参数,所有这些都参数可以是一个单一的函数或一个函数数组。当Deferred(延迟)解决时,doneCallbacks被调用。回调是依照他们添加的顺序执行。deferred.done()
返回Deferred对象,Deferred(延迟)可以链接其它的延迟对象,包括增加额外的.done()
方法。当Deferred(延迟)解决,doneCallbacks执行,并且使用提供给resolve
或resolveWith
方法的参数,依照被添加的顺序调用。
例子
jQuery.get
方法返回一个来自延迟的对象的jqXHR对象,我们可以附加一个成功回调使用.done()
方法。
$.get("test.php").done(function () { alert("$.get succeeded"); });
当用户点击按钮时,受理延迟对象,触发一系列回调函数:
<!DOCTYPE html> <html> <head> <script src="https://www.lanmper.cn/static/js/jquery-3.5.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>
Ready...