gpt4 book ai didi

javascript - Deferred 和 Promise 功能无法正常工作

转载 作者:行者123 更新时间:2023-11-28 06:46:48 26 4
gpt4 key购买 nike

我的要求很简单,但仍然无法解决,我的代码出了什么问题。我有验证功能,它从服务器获取数据。我想确保它应该等到 ajax 请求完成。请建议使用哪个延迟函数。

 // Validate function is defined under variable.....

validate : function (field){
field.valid = false;
// accessSer is a common object where AJAX request defined
accessSer.request("checkDuplicate", field.value, function(response){
if(response.success == true){
field.valid = true;
}
});
}


//i tried below deferred function $.when to call validate function.


$.when(opts.validate(this)).then( function(){
console.log(this.valid); // always have undefined
});

console.log(field.valid); // always have false.

最佳答案

您需要从验证函数返回accessSer.request(...)结果。尝试这样的事情:

validate: function (field) {
field.valid = false;
return accessSer.request("checkDuplicate", field.value, function (response) {
return field.valid = (response.success == true);
});
}

opts.validate(this).then(function (valid) {
console.log(valid);
console.log(field.valid);
});

关于javascript - Deferred 和 Promise 功能无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33350009/

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