gpt4 book ai didi

javascript - jQuery:WAITING $.get() 返回值

转载 作者:行者123 更新时间:2023-12-02 14:31:12 26 4
gpt4 key购买 nike

这是我的代码示例

var formValidate = function() {
var url = 'someurl';
var checkC = function (url, callback) {
$.get(url, function( data ) {
if(data.indexOf('OK') == 0) return callback('OK');
})
};
checkC(url, function(data) {
if(data == 'OK') return false;
});
return true;
}

我的代码与 Adam Rackis 在这个问题中的代码非常相似 Wait for jQuery $.get function to finish before running code 。但不幸的是函数不等待数据返回。 formValidate() 只是返回 true。我想在从表单发送数据到服务器之前使用这个函数检查一些条件

form.on('submit', function(){
if(formValidate()) form_send();
})

有人可以告诉我上面的代码哪里错了吗?

最佳答案

第一个问题是,无论ajax请求如何,formValidate()都会同步返回true

var formValidate = function() {
.
.
.
return true;
}

如果您希望等待回调函数返回您的值。在这里,您应该从成功回调中调用 form_send() 以使其等待异步调用。实际上,您也可以在没有 checkC() 的情况下使其变得更简单。稍微更改一下代码并使用完成和失败 promise :

var formValidate = function () {
var url = 'someurl';

$.get(url)
.done(function (data) {
if (data.indexOf('OK') == -1) {
console.log("error");
return;
}
form_send();
})
.fail(function () {
console.log("error");
return;
})
}

关于javascript - jQuery:WAITING $.get() 返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37814791/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com