Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript函数的编排_Javascript_Jquery_Orchestration - Fatal编程技术网

javascript函数的编排

javascript函数的编排,javascript,jquery,orchestration,Javascript,Jquery,Orchestration,我试图运行2个函数,然后在单击处理程序中重新定位用户。代码如下 $(".myLink").click( function() { function1(param1); // This function contains an ajax call that updates a DB. function2(param1); // This function does as well. window.location="foo.php"; }); 虽然my window.location

我试图运行2个函数,然后在单击处理程序中重新定位用户。代码如下

$(".myLink").click( function() {
  function1(param1); // This function contains an ajax call that updates a DB.
  function2(param1); // This function does as well.
  window.location="foo.php";
});
虽然my window.location正确重新定位,但功能未正确启动。我被jQuery1.43卡住了,所以我不能使用延迟对象

处理上述编排的公认体系结构是什么。

回调

$(".myLink").click( function() {
  function1(param1, { success: function() {
    function2(param1, { success: function() {
      window.location = "foo.php";
    }});
  }});
});
或者,这可能会让他们同时开火:

$(".myLink").click( function() {
  completed = 0;
  var success = function() {
    completed++;
    if (completed === 2) {
      window.location = "foo.php";
    }
  }
  function1(param1, { success: success });
  function2(param1, { success: success });
});

这基本上就是在没有适当的
延迟的
库的情况下可以做到的。

第一个ajax调用的
成功
函数必须触发第二个ajax调用。

我被jQuery 1.4.3卡住了
我为你感到抱歉。那么,使用好的旧回调。哎呀,我希望它不会这么混乱,但有道理。谢谢你的快速回复。延迟对象更优雅<代码>延迟
是一个概念,它的出现正是因为它有多么混乱。@JasonWells您的函数需要结构化以处理回调。这种结构不是魔法。你还没有发布那个代码,所以我不能再多提建议了。