成功后启动下一个功能

start next function after success

本文关键字:功能 下一个 启动 成功      更新时间:2023-09-26

我想在ajax调用成功后启动一个函数。我现在要做的是

function ajaxCall(url, types, next) {
    $.ajax({
        url: url,
        type: 'POST',
        beforeSend: function () {
            $("#plaatsMelding").append("<div id='"" + types + "verwerkt'"><div class='"progress-label'">" + types + " verwerken...</div></div>");
        },
        success: function (data) {
            $('#plaatsMelding').empty();
            $("#plaatsMelding").append("<div id='"" + types + "verwerkt'"><div class='"progress-label'">" + data + "</div></div>");
            //run next script
            if (next.length) {
                alert(next);
                next(); //this won't work because it will search for the next() function
            }
        }
    });
}

我用下面的函数来启动这个函数:

function saveRace() {
    ajaxCall("verwerkRace.php", "race", "savePlayers");
}

所以当这个函数准备好了,我想让它运行函数"savePlayers"。我该怎么做呢?

function savePlayers() {
    ajaxCall("verwerkPlayers.php", "players");
}

不要传递字符串,传递函数:

function saveRace() {
    ajaxCall("verwerkRace.php", "race", savePlayers);
}

然后在你的success中你可以这样做:

if (next) {
    next(); 
}

直接传入函数本身:

function saveRace() {
  ajaxCall("verwerkRace.php", "race", savePlayers);
}

JavaScript不知道如何将字符串转换为要调用的函数

按照建议,传递一个函数而不是字符串

function saveRace() {
    ajaxCall("verwerkRace.php", "race", savePlayers);
}

如果成功,你可以检查你是否传递了一个函数,然后触发它:

 if (next && typeof(next) === 'function') {
    next(); 
 } else {
    console.error('Error firing the callback!');
 }