2013-12-14 23 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); 
    } 
);