Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript、jQuery中参数化异步函数链的变量回调_Javascript_Jquery_Asynchronous_Callback_Deferred - Fatal编程技术网

在javascript、jQuery中参数化异步函数链的变量回调

在javascript、jQuery中参数化异步函数链的变量回调,javascript,jquery,asynchronous,callback,deferred,Javascript,Jquery,Asynchronous,Callback,Deferred,我对表格的功能有一个编号: function A() { asychProcessA( someCallBack(); ) } function B() { asychProcessB( someCallBack(); ) } function C () { asychProcessC( someCallBack(); ) } 有时,我会希望以串联方式实现这些功能,如: function A()

我对表格的功能有一个编号:

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

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

function C () {
    asychProcessC(
        someCallBack();
    )
}
有时,我会希望以串联方式实现这些功能,如:

function A() {
    asychProcessA(
        functionB();
    )
}
但我也希望能够选择使用其他回调函数单独实现其中一个函数,如

function A() {
    asychProcessA(
        someOtherCallBack();
    )
}
有人能提出一个优雅而多功能的设置方法吗。我在这个项目中使用jQuery,所以这是一个公平的游戏。

$。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);
   }
);

在JS中,始终可以将函数作为参数传递。在编写三个以上的函数时,我很难让它正常工作。