2

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";
});

私の window.location は適切に再配置されますが、関数は正しく起動しません。jQuery 1.43 に固執しているため、遅延オブジェクトを使用できません。

上記のオーケストレーションを処理するために受け入れられているアーキテクチャは何ですか。

4

2 に答える 2

4

コールバック

$(".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 });
});

これは基本的に、適切なDeferedライブラリなしで行う方法です。

于 2012-12-21T23:32:10.030 に答える
1

最初のajaxsuccess呼び出しの関数は、2 番目の ajax 呼び出しをトリガーする必要があります。

于 2012-12-21T23:32:18.977 に答える