javascript - 调用函数时Jquery返回空值
问题描述
我正在编写我的 jquery 代码来调用一个函数来获取我在页面上刷新时想要的值,这样我就可以获得返回值。
当我尝试这个时:
var email_number = '';
// check if page refreshed or reloaded
if (performance.navigation.type == 1) {
var hash = window.location.hash;
var mailfolder = hash.split('/')[0].replace('#', '');
var emailid = 'SUJmaWg4RTFRQkViS1RlUzV3K1NPdz09';
decryption(emailid, mailfolder);
}
function decryption(emailid, mailfolder) {
$.ajax({
url: 'decrypt.php',
type: 'POST',
data : {
emailid: emailid,
mailfolder: mailfolder
},
success: function(data)
{
email_number = data;
}
});
return email_number;
}
我会得到空值。所以我试过这个:
function decryption(emailid, mailfolder) {
var email_number = '';
$.ajax({
url: 'decrypt.php',
type: 'POST',
data : {
emailid: emailid,
mailfolder: mailfolder
},
success: function(data)
{
email_number = data;
}
});
return email_number;
}
我也试过这个:
return;
我仍然得到空值作为回报。我检查了一个名为的变量email_number
,返回值为6
. 当我在页面上刷新以调用将通过 ajax 运行以将值存储在变量中的函数时,如何获取返回值email_number
?
谢谢你。
解决方案
由于 ajax 调用是异步的,因此在控制执行时return email_number;
ajax 正忙于获取data
.
请参阅:如何从异步调用返回响应?
推荐阅读
- java - Rx 读取文件并向 12 个观察者发送数据
- c# - 是否可以从使用 Moq 的实例中获取模拟实例?
- python - Python Selenium:firefox 无头选项不适用于 Firefox 52.8.0(32 位)
- javascript - 每个 API 调用都必须有一个唯一的 AddAntiForgery 令牌吗?
- java - 使用 Pageable 字段测试端点时出现 JsonMappingException
- reactjs - 材料谷歌图表中X轴的格式日期
- python - 路径包含 matplotlib 中的路径
- python - AWS Lambda 创建标签(如果不存在)
- regex - 99% 的正则表达式用于匹配 URL(但不是锚标签内的)
- javascript - 如何将事件传递给 setState 回调函数?