可以用作javascript異步模式的函數寫法
阿新 • • 發佈:2017-12-20
ret spa 對象 call err resolv deferred timeout cal
1. 回調函數 f1(); f2(); function f1(callback) { setTimeout(function() { // f1的任務代碼 callback(); }, 1000); } f1(f2); 2. 事件監聽 f1.on(‘done‘, f2); function f1() { setTimeout(function() { // f1的任務代碼 f1.trigger(‘done‘); }, 1000); } 3. 發布 / 訂閱 jQuery.subscribe("done", f2); function f1() { setTimeout(function() { // f1的任務代碼 jQuery.publish("done"); },1000); } jQuery.unsubscribe("done", f2); 4. Promises對象 f1().then(f2); function f1() { var dfd = $.Deferred(); setTimeout(function() { // f1的任務代碼 dfd.resolve(); }, 500); returndfd.promise; } 指定多個回調函數: f1().then(f2).then(f3); 指定發生錯誤時的回調函數: f1().then(f2).fail(f3);
可以用作javascript異步模式的函數寫法