【问题标题】:Parameterizing variable call backs for a chain of asynchronous functions in javascript, jQuery为javascript,jQuery中的异步函数链参数化变量回调
【发布时间】:2013-12-14 07:28:02
【问题描述】:

我有一个表格函数的编号:

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

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

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

有时我会想按顺序实现这些功能,例如:

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

但我也希望选择使用其他回调来单独实现其中之一

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

有人可以提出一种优雅而通用的设置方式吗?我在这个项目中使用 jQuery,所以这是公平的游戏。

【问题讨论】:

标签: javascript jquery asynchronous callback deferred


【解决方案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);
   }
);

【讨论】:

    猜你喜欢
    • 2015-09-19
    • 2023-04-04
    • 2015-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-19
    • 1970-01-01
    • 2015-10-08
    相关资源
    最近更新 更多