代码之家  ›  专栏  ›  技术社区  ›  NoBullMan

使ajax承诺成为函数

  •  0
  • NoBullMan  · 技术社区  · 5 年前

    在运行第三个ajax函数之前,我需要先完成两个ajax函数。我把它们分成两个变量,然后用$.when开始第三个变量。

    var ilf =
        $.ajax({
            type: "POST",
            dataType: "json",
            contentType: "application/json; charset=utf-8",
            url: '<%= ResolveUrl("../WebService/abc.asmx/GetFirst") %>',
            cache: false,
            data: null,
        }).done(function (result) {
            if (result != '') {
            }
        }).fail(function (jqXHR, textStatus, errorThrown) {
    });
    
    var rlf =
        $.ajax({
            type: "POST",
            dataType: "json",
            contentType: "application/json; charset=utf-8",
            url: '<%= ResolveUrl("../WebService/abc.asmx/GetSecond") %>',
            cache: false,
            data: null,
        }).done(function (result) {
        }).fail(function (jqXHR, textStatus, errorThrown) {
        });
    
    $.when(ilf, rlf) 
        .done(function (r1, r2) {
        // do whatever
    });
    

    1 回复  |  直到 5 年前
        1
  •  2
  •   Barmar    5 年前

    只需将代码放入函数定义中。

    function ilf_rlf() {
      var ilf =
        $.ajax({
          type: "POST",
          dataType: "json",
          contentType: "application/json; charset=utf-8",
          url: '<%= ResolveUrl("../WebService/abc.asmx/GetFirst") %>',
          cache: false,
          data: null,
        }).done(function(result) {
          if (result != '') {}
        }).fail(function(jqXHR, textStatus, errorThrown) {});
    
      var rlf =
        $.ajax({
          type: "POST",
          dataType: "json",
          contentType: "application/json; charset=utf-8",
          url: '<%= ResolveUrl("../WebService/abc.asmx/GetSecond") %>',
          cache: false,
          data: null,
        }).done(function(result) {}).fail(function(jqXHR, textStatus, errorThrown) {});
    
      $.when(ilf, rlf)
        .done(function(r1, r2) {
          // do whatever
        });
    }
    
    $("#buttonid").click(ilf_rlf);