JQuery,Function orchestration

时间:2012-12-07 02:12:48

标签: javascript jquery architecture orchestration

我在当前项目上遇到jQuery 1.4.3,需要一些关于如何最好地协调以下内容的建议。

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

我想做点什么,

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

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

1 个答案:

答案 0 :(得分: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);