1

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

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

我想做类似的事情,

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

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

4

1 回答 1

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);
于 2012-12-07T02:19:06.377 回答