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

Parameterizing variable call backs for a chain of asynchronous functions in javascript, jQuery

本文关键字:变量 回调 jQuery 函数 javascript 异步 参数      更新时间:2023-09-26

我有一个函数形式的数字:

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