我停留在当前项目的jQuery 1.4.3上,并且需要一些有关如何最好地组织以下内容的建议。

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

我想做类似的事情,

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


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

最佳答案

确保在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);

10-06 04:53