如何从ajax调用函数返回值

时间:2018-01-03 06:39:03

标签: javascript jquery ajax async-await

我有一个功能

function GetITStaffList(){
    var go_path = "Server/ITComplains.php?action=GetITStaffList&vars=0";
    $jqLibrary.get(go_path,
        {}, function(data)
        {
            var parseData = JSON.parse(data);
            console.log("GetPendingAndInProgressComplainsByGeneratorId : ", parseData);

            return parseData;
        });
}

我在代码中的某个地方调用了这个

var ITStaffList = GetITStaffList();
MakeDropDownITStaff(ITStaffList);

但问题是每次返回null。我知道我必须使用回调和类似承诺的东西,但我不知道如何在我的上下文中使用这个东西。如何使用按需返回数据的ajax调用编写可重用函数。?

1 个答案:

答案 0 :(得分:1)

返回一个承诺。

function GetITStaffList(){

    return new Promise(function(resolve){

       var go_path = "Server/ITComplains.php?action=GetITStaffList&vars=0";
       $jqLibrary.get(go_path,
           {}, function(data)
           {
               var parseData = JSON.parse(data);
               console.log("GetPendingAndInProgressComplainsByGeneratorId : ", parseData);

            resolve(parseData);    //Notice this
        });
    })
}

现在您可以调用该函数并等待数据。

GetITStaffList().then(function(data){
    console.log(data)
})