javascript - 在其他函数(JS)的末尾运行函数

标签 javascript jquery

<分区>

我有从数据库中获取计算ID的功能

代码如下:

function getClaculationId() {

    var appointmentid = parseInt($('#appointmentId').text());
    var model = {
        appointmentId:appointmentid
    }
    $.ajax({
        url: '@Url.Action("GetCalculationId","Calculations")',
        contentType: 'application/json; charset=utf-8',
        data: JSON.stringify(model),
        type: 'POST',
        dataType: 'json',
        processData: false,
        success: function(data) {
            var list = data;
           $("#calculationId").text(list[0].calcId);
        }
    });

}

在此之后我需要获取这个 id 并在另一个函数中使用

这是这个函数的代码

function getConsumables() {
   var calculationId = $('#calculationId').text();
   var model = {
       calcId: parseInt(calculationId)
   };
   $.ajax({
       url: '@Url.Action("GetConsumables", "Calculations")',
       contentType: 'application/json; charset=utf-8',
       data: JSON.stringify(model),
       type: 'POST',
       dataType: 'json',
       processData: false,
       success: function(data) {
           var list = data;
           for (var i = 0; i <= list.length - 1; i++) {
               var calculationTable = '<td class="point">' +
                   (i + 1) +
                   '</td>' +
                   '<td class="title"> ' +
                   list[i].consumableName +
                   '</td>' +
                   '<td class="title"> ' +
                   list[i].quantity +
                   '</td>' +
                   '<td class="title"> ' +
                   list[i].description +
                   '</td>' +
                   '<td class="title"> ' +
                   '</td>' +
                   '<td class="title"> ' +
                   list[i].summ +
                   '</td>';
               $('#consumables').append(calculationTable);
           };
       }
   });

我这样调用那些函数

$('#calculate').click(function() {
    $('#main-info').load('@Url.Action("Calculations","PatientDatabase")',function() {
        getClaculationId();
        getConsumables();
    });
});

但问题在于当 getConsumables() 运行时,calculationId 为空。

我需要如何正确编写代码才能将 calculationId 传递给第二个函数?

谢谢你的帮助。

最佳答案

我想处理这种情况Promise方法比任何方法都好。但现在您可以尝试以下方法:

function getClaculationId() {

    var appointmentid = parseInt($('#appointmentId').text());
    var model = {
        appointmentId:appointmentid
    }
    $.ajax({
        url: '@Url.Action("GetCalculationId","Calculations")',
        contentType: 'application/json; charset=utf-8',
        data: JSON.stringify(model),
        type: 'POST',
        dataType: 'json',
        processData: false,
        success: function(data) {
            var list = data;
           //$("#calculationId").text(list[0].calcId);
           getConsumables(list[0].calcId); // Called here with success value
        }
    });

}

function getConsumables(value) {
   //var calculationId = $('#calculationId').text();
   var model = {
       calcId: parseInt(value)
   };
   $.ajax({
       url: '@Url.Action("GetConsumables", "Calculations")',
       contentType: 'application/json; charset=utf-8',
       data: JSON.stringify(model),
       type: 'POST',
       dataType: 'json',
       processData: false,
       success: function(data) {
           var list = data;
           for (var i = 0; i <= list.length - 1; i++) {
               var calculationTable = '<td class="point">' +
                   (i + 1) +
                   '</td>' +
                   '<td class="title"> ' +
                   list[i].consumableName +
                   '</td>' +
                   '<td class="title"> ' +
                   list[i].quantity +
                   '</td>' +
                   '<td class="title"> ' +
                   list[i].description +
                   '</td>' +
                   '<td class="title"> ' +
                   '</td>' +
                   '<td class="title"> ' +
                   list[i].summ +
                   '</td>';
               $('#consumables').append(calculationTable);
           };
       }
   });
}

关于javascript - 在其他函数(JS)的末尾运行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47789357/

相关文章:

javascript - Selenium WebDriver Click 方法和 Javascript Click 方法之间的区别

javascript - 多个异步查询的流程并在完成时运行回调

javascript - 在单个 div 单击上绑定(bind)输入字段

javascript - 使用 XMLHttpRequest 提交表行中的字段

javascript - 无法使用新的 Normalizr 3.1.0 对实体进行反规范化

javascript - X-editable $(...).editable 不是函数

javascript - 将参数传递给函数

jquery - jQuery 对象上的函数重载

jquery - 正好 10 位数字的电话号码验证

jquery - 如何仅使用 jquery 从下到上对元素进行动画处理