2013-12-14 22 views
4

我對形式的功能數量:參數化變量回調爲在JavaScript異步函數鏈,jQuery的

function A() { 
    asychProcessA(
     someCallBack(); 
    ) 
} 

function B() { 
    asychProcessB(
     someCallBack(); 
    ) 
} 

function C() { 
    asychProcessC(
     someCallBack(); 
    ) 
} 

有的時候我會想在像系列實現這些功能:

function A() { 
    asychProcessA(
     functionB(); 
    ) 
} 

但我也想實施這些單獨一個與其他一些回調像

function A() { 
    asychProcessA(
     someOtherCallBack(); 
    ) 
} 
的選項0

有人可以建議一個優雅和多功能的方式來設置。我在這個項目中使用jQuery,這是公平的遊戲。

+1

jQuery延期? – jfriend00

+0

您始終可以將該函數作爲JS中的參數傳遞。 http://stackoverflow.com/questions/13286233/javascript-pass-function-as-parameter –

+0

我在編寫三個以上的函數時遇到了麻煩。 –

回答

-1

$ .Deferred()似乎是通過下面的實現來實現的。

function A(input) { 
    var def = $.Deferred(); 
    asychProcessA(
     someCallBack(); 
     def.resolve(someInput); 
    ) 
    return def.promise(); 
} 

function B(input) { 
    var def = $.Deferred(); 
    asychProcessB(
     someCallBack(); 
     def.resolve(someInput); 
    ) 
    return def.promise(); 
} 

//Implementation1: Use B() as call back for A() 

A(someInput1).done(
    function(){ 
     B(someInput2); 
    } 
); 

//Implementation1: Use random() as call back for A() 

A(someInput1).done(
    function(){ 
     random(someInput2); 
    } 
);