使 ajax 承诺成为功能

Make ajax promise into function

我有两个 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
});

如果我想能够调用$.when,我该如何修改这个设置?比如说,响应按钮点击。

只需将代码放在函数定义中即可。

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