jQuery等待Ajax请求,直到它完成无效

时间:2017-11-15 16:19:15

标签: jquery ajax

我有一个公式,当我按下按钮时,我必须处理异步Ajax请求。在nextButtonHandler()的所有进程完成后,应调用函数requestForTariff()。我尝试了以下内容,但它并没有等到请求处理结束。

$.when(requestForTariff(requestType.Street)).done(function(){
    nextButtonHandler()
});

这是我的Ajax功能:

function requestForTariff(requestParam) {
    $.ajax({
        type: 'POST',
        url: //...,
        data: getRequestJSON(requestParam),
        success: function(data, status) {
            if (status == "success") {
                if (requestParam == requestType.Street) {
                    handleResult(data);
                }
                //...
            }
        },
        contentType: "application/json",
        dataType: 'json',
        error: // ...
    });

1 个答案:

答案 0 :(得分:1)

感谢Adreas的评论,将我的requestForTariff()功能更改为

function requestForTariff(requestParam) {
    return $.ajax({
        type: 'POST',
        url: //...,
        data: getRequestJSON(requestParam),
        success: function(data, status) {
            if (status == "success") {
                if (requestParam == requestType.Street) {
                    handleResult(data);
                }
                //...
            }
        },
        contentType: "application/json",
        dataType: 'json',
        error: // ...
    });

解决了我的问题。