【问题标题】:JQuery, Function orchestrationJQuery,函数编排
【发布时间】:2012-11-25 05:00:25
【问题描述】:

我在当前项目中坚持使用 jQuery 1.4.3,需要一些关于如何最好地编排以下内容的建议..

假设我有两个函数都执行 ajax 调用,如果第一个函数成功,我只想调用第二个函数。话虽如此,在我的应用程序中,有时我会调用 function a 而无需调用 function b。因此,将第二个函数的调用放在第一个函数成功方法中是没有意义的。

我想做一些类似的事情,

function doStuff(){
    functionA().success( functionb() ).failure();
}

我通常使用 .done(); 进行编排。但这是在 jQuery 1.5 中引入的,我现在再次停留在 1.4.3 上。

【问题讨论】:

    标签: javascript jquery architecture orchestration


    【解决方案1】:

    当然,在functionA() 成功处理程序中调用它是有意义的。只是有条件地调用它。

    // Set a variable to determine if you will need to call functionB()
    var youNeedToCallFunctionB = true;
    // And call functionA()
    functionA();
    
    // Function definition:
    function functionA() {
      $.ajax({
        url: ...,
        success: function() {
          if (youNeedToCallFunctionB) {
            // Call functionB() in the success handler when needed...
            functionB();
          }
        }
      });
    }
    
    functionB() {
      // Some other AJAX call...
    }
    

    更好的是,传递一个参数给functionA(),它决定是否调用functionB()

    functionA(youNeedToCallFunctionB) {
      // same thing as above, but pass the parameter
    }
    
    // Called as
    functionA(true);
    

    【讨论】:

    • 谢谢,我想我正在寻找更多“服务”类型的模式,但这很有趣,也许是 JS 中最好的方法。
    猜你喜欢
    • 1970-01-01
    • 2018-06-03
    • 2012-12-09
    • 2019-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 2021-07-06
    相关资源
    最近更新 更多