使Ajax Prom发挥作用

问题描述

在运行第3个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",url: '<%= ResolveUrl("../WebService/abc.asmx/GetSecond") %>',}).done(function (result) {
    }).fail(function (jqXHR,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",url: '<%= ResolveUrl("../WebService/abc.asmx/GetSecond") %>',}).done(function(result) {}).fail(function(jqXHR,errorThrown) {});

  $.when(ilf,rlf)
    .done(function(r1,r2) {
      // do whatever
    });
}

$("#buttonid").click(ilf_rlf);