Javascript 延迟和承诺函数无法正常工作

Javascript 延迟和承诺函数无法正常工作,javascript,jquery,Javascript,Jquery,我的要求很简单,但仍然无法解决代码中的错误。 我有一个验证函数,它从服务器获取数据。我想确保它应该等到ajax请求完成。请建议使用哪个延迟函数 // Validate function is defined under variable..... validate : function (field){ field.valid = false; // accessSer is a common object where AJAX request defined acce

我的要求很简单,但仍然无法解决代码中的错误。 我有一个验证函数,它从服务器获取数据。我想确保它应该等到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.

您需要从validate函数返回
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);
});

您需要从validate函数返回
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);
});

不工作,opts.validate(此)出现语法错误。然后(函数(有效)但令人惊讶,它仍然调用validate函数。不工作,opts.validate(此)出现语法错误。然后(函数(有效)但令人惊讶,它仍然调用validate函数。