Javascript 从执行ajax请求的js函数返回bool

Javascript 从执行ajax请求的js函数返回bool,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个问题,var x=isCustomerInWarehouse(customerNumber,url)总是未定义的。我不知道如何重写此函数,使其与boolean返回类型一起工作 function isCustomerInWarehouse(customerNumber, url) { $.ajax({ url: url, type: 'POST', data: { customerNumber: customerNumber },

我有一个问题,
var x=isCustomerInWarehouse(customerNumber,url)
总是未定义的。我不知道如何重写此函数,使其与
boolean
返回类型一起工作

function isCustomerInWarehouse(customerNumber, url) {

    $.ajax({
        url: url,
        type: 'POST',
        data: { customerNumber: customerNumber },
        cache: false,
        async: false
    })

        .done(function (data) {

            if (data.result) {
                return true;             
            } else {
                return false;
            }
        })

        .fail(function () {
            alert('Ajax error happened.')
        });  

};
有什么想法吗?我不反对任何其他javascript库调用ajax,例如fetchaxios

第二次尝试

function isCustomerInWarehouse(customerNumber, url) {
    var returnValue = false;

    $.ajax({
        url: url,
        type: 'POST',
        data: { customerNumber: customerNumber },
        cache: false,
        async: false // does not matter what is here :/
    })

        .done(function (data) {

            if (data.result) {
                returnValue = true;             
            } else {
                returnValue = false;
            }
        })

        .fail(function () {
            alert('Ajax error happened.')
        });  

    return returnValue;
};
但是isWarehouse
var isWarehouse=isCustomerInWarehouse(customerNumber,url)
的值是


这已成为一个荒谬的问题,但我仍然不知道如何解决它:/

您没有返回语句;)这是第一件事,也是第二件事,您不应该使用jQueryAjax。考虑使用FETCH API或AXIOS.< 编辑:

函数为CustomerInWarehouse(customerNumber,url){
返回获取(url{
方法:“张贴”,
缓存:“无缓存”,
正文:JSON.stringify({
客户编号
})
})
.catch(()=>警报(“发生了Ajax错误”)
.然后(data=>data.result);
};
此函数返回
数据。结果。您的代码中的data.result是什么?

您能提供一个示例吗?顺便说一句,函数有return语句,为什么不投票?isCustomerInWarehouse没有return语句。回调已提供给。完成已返回。它仍然不起作用,您可以提供工作代码示例吗?$。ajax是异步的,您不能只设置returnValue并返回它,因为返回将在完成$.ajax之前执行。你必须遵守诺言,我一小时后写代码