缓存对象可以注册多个回调到回调队列, 调用回调队列,准备代替任何同步或异步函数的成功或失败状态。
其原理是将回调函数保存到一个数组当中,等到触发时再调用。
function myDeferred(){ var arr = []; return { done: function(a){ arr.push(a); }, solve : function(){ arr.shift()(); } } } var a = myDeferred(); a.done(function(){ console.log("I am done"); }) a.solve()//I am done
原文:http://www.cnblogs.com/winderby/p/4095407.html