1. 程式人生 > >可以用作javascript異步模式的函數寫法

可以用作javascript異步模式的函數寫法

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); return
dfd.promise; } 指定多個回調函數: f1().then(f2).then(f3); 指定發生錯誤時的回調函數: f1().then(f2).fail(f3);

可以用作javascript異步模式的函數寫法