【发布时间】:2020-07-17 17:41:19
【问题描述】:
对这些新方法还是很陌生。
如下声明一个异步 ajax 请求:
async function doAjax(email) {
let result;
try {
result = await jQuery.ajax({
url: ajaxurl,
type: 'POST',
data: {"action": "custome_ajax_email_check", "guestemail": email }
});
return result;
} catch (error) {
console.error(error);
}
}
这是在另一个名为 validate() 的函数中调用的
function validate() {
var email = jQuery("#billingemail").val();
if (isValidEmailAddress(email)) {
doAjax(email).then( (data) => ajaxCallResult(data) )
}
. . . . .
调试到现在,它确实如您所愿......进入validate(),进入doAjax(),这是最后一个调用(缩小)的函数:
function ajaxCallResult(data){
data = jQuery.parseJSON(data);
if(!data.result) {
return true;
}
else {
return false;
}
}
但现在我需要 ajaxCallResult()... 的返回值(在这种情况下为布尔值),因为 true 或 false 表示用户电子邮件是否存在。
但由于它是链式的,我不知道如何将其声明为一个变量来返回结果。
【问题讨论】:
标签: jquery ajax asynchronous async-await