javascript - 如何从ajax调用函数返回值

标签 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。我知道我必须使用回调和诸如 promise 之类的东西,但我不知道如何将这个东西适合我的上下文。如何编写一个可重用的函数,通过 ajax 调用按需返回数据。

最佳答案

返回一个 promise 。

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)
})

关于javascript - 如何从ajax调用函数返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48072404/

相关文章:

javascript - 通过 jquery ajax 发布表单数据时如何从 php 检索回显数据?

javascript - 无法使用 oauth.io 获取电子邮件地址、位置和值

javascript - 从 dom-repeat 访问元素的属性

javascript - jquery事件命名空间冒泡问题

javascript - 为什么函数执行 1 + n 次,而它应该在单击时执行一次?

php - 列表记录删除确认问题

javascript - 错误: Image is not defined (trouble using Image() function)

javascript - 使用 React Hook Form 监视所有字段重新渲染 useEffect 的问题

javascript - 图像 slider 中的 Ajax 形式

javascript - 通过 ajax 返回 NULL 发布到 PHP 的音频 blob