javascript - 成功数据从 AJAX GET 类型返回 null
问题描述
我正在使用以下代码success data
进入variable
:
var compdet = null;
$.ajax({
url: uri2 + "/" + $("#textbox_id").val(),
type: "GET",
cache: false,
success: function (data) {
compdet = data;
}
});
为了检查我var compdet
是否有价值,我补充说:
console.log(compdet);
可悲的是,它返回 JUST null
。console.log
所以我试着把
success: function (data) { console.log(data); }
它返回我想看到的输出。谁能给我解释一下?
我在这里意识到了一些事情。您实际上可以进行
Javascript
函数async
和await AJAX
调用。
例如:
async function func_name() {
await $.ajax({
// some codes here
});
}
解决方案
JavaScript 执行是同步的,但AJAX是异步的。如果您在AJAX之后有任何代码,它可能会在完成 AJAX 之前执行。这就是你获得价值的原因null
。
在这种情况下,您可以在success()
回调中执行下一个代码,或者调用另一个方法来执行下一个代码块。
方法调用示例:
function next(compdet) {
// code stuff
}
$.ajax({
url: uri2 + "/" + $("#textbox_id").val(),
type: "GET",
cache: false,
success: function (data) {
next(data)
}
});
查看同步与异步之间的区别。
推荐阅读
- sql - 计算所有孩子都属于特定类型的父母类型
- php - Laravel 如何在 eloquent 模型中使用值而不是完整对象与连接
- java - Thread.sleep(#milliseconds) 在本地工作。部署到heroku时,程序不会暂停
- python - 如何更改程序中的数据类型?
- php - 我需要阻止 imap_body 添加换行符和插入字符
- python - 使用 '==' 比较器和使用带有 spark 的 .contains('val') 有什么区别?
- reactjs - react-native:如何在 react-native 中设置状态()动态?
- angular - 如何为函数局部变量赋值或访问值?
- excel - 如何在 HTMLBody 中格式化段落间距?
- github - 删除 Git 分支并禁用恢复按钮