jquery中的deferred
2021-03-29 10:27
标签:wait fun nbsp ati any mis 就是 返回 log 熟悉的东西,长时间不用很快也就忘了,挺多还蛮可惜的。。 deferred之前用过不少次,这次心血来潮总结一下,主要还是参考阮老师的这篇文章。 deferred对象被jquery推出,作为操作回调的一种方式。 譬如ajax请求,如果想在请求成功后执行某些操作,比较常见的方法是在配置中定义好`success()`回调函数。 如果利用$.ajax的deferred方式,$.ajax()会返回一个deferred对象,在该对象后串联需要进行操作,被链入的操作并不会立刻执行,而是在被推迟到特定条件情况下才会触发 如: .done(function(){ alert("哈哈,成功了!"); }) .fail(function(){ alert("出错啦!"); }); 之所以称为deferred,应该就是因为这种推迟执行的特性所致。 不单单利用jquery已经封装好的deferred组件,也可以自己创建deferred组件,在合适的时机触发成功或失败,从而达到回调的特性。 一个可能在很多地方都见过的例子,通过deferred对象,在外部监控某操作执行完后,进行相应操作: var dtd = $.Deferred(); //在函数内部,新建一个Deferred对象 var tasks = function(){ alert("执行完毕!"); dtd.resolve(); // 改变Deferred对象的执行状态 }; setTimeout(tasks,5000); return dtd.promise(); // 返回promise对象 }; $.when(wait()) .done(function(){ alert("哈哈,成功了!"); }) .fail(function(){ alert("出错啦!"); }); jquery中的deferred 标签:wait fun nbsp ati any mis 就是 返回 log 原文地址:https://www.cnblogs.com/mosakashaka/p/12608077.html
$.ajax("test.html")
var wait = function(dtd){