使用ajax的Javascript回调函数

Zak*_*nry 7 javascript ajax jquery callback

我正在编写一个通用函数,它将在我的脚本中的多个位置重用.

该函数使用ajax(使用jQuery库),所以我想以某种方式将一个函数(或代码行)传入此函数,以便在ajax完成时执行.我认为这需要一个回调函数,但在阅读了几个回调答案后,我仍然对我将如何实现我的情况感到困惑.

我目前的职能是:

function getNewENumber(parentENumber){

        $.ajax({
               type: "POST",
               url: "get_new_e_number.php",
               data: {project_number: projectNumber, parent_number: parentENumber},
               success: function(returnValue){
                    console.log(returnValue);
                    return returnValue; //with return value excecute code

                },
                error: function(request,error) {
                    alert('An error occurred attempting to get new e-number');
                    // console.log(request, error);
                }
        });
    }
Run Code Online (Sandbox Code Playgroud)

有了这个函数,我希望能够像其他jQuery函数一样工作,即;

var parentENumber = E1-3;

getNewENumber(parentENumber, function(){
    alert(//the number that is returned by getNewENumber);
});
Run Code Online (Sandbox Code Playgroud)

use*_*716 8

只需getNewENumber为该函数提供另一个参数,然后将其用作回调.

   // receive a function -----------------v
function getNewENumber( parentENumber, cb_func ){

    $.ajax({
           type: "POST",
           url: "get_new_e_number.php",
           data: {project_number: projectNumber, parent_number: parentENumber},

             // ------v-------use it as the callback function
           success: cb_func,
            error: function(request,error) {
                alert('An error occurred attempting to get new e-number');
                // console.log(request, error);
            }
    });
}

var parentENumber = E1-3;

getNewENumber(parentENumber, function( returnValue ){
    alert( returnValue );
});
Run Code Online (Sandbox Code Playgroud)