javascript - jQuery获取请求返回未定义的值
问题描述
我正在尝试编写一个函数,该函数将从本地托管的 api 返回数据,以便我可以在使用 var baseUrl = ' http://localhost:3000 '; 时调用该函数来获取更新的数据;
这是我的获取请求:
var baseUrl = 'http://localhost:3000';
function getData(){
$.ajax({
type: "GET",
url: baseUrl + "/jobs",
data: "{}",
success: function(data){
console.log(data);
return data;
},
dataType: 'json'
});
}
以下是将请求的响应设置为不同文件中的变量的示例:
var myVariable = getData();
当我尝试打印 myVariable 时,它返回为未定义。有没有办法可以获取返回的 json 对象,以便在我的程序中使用它?
解决方案
$.ajax 是异步的。这意味着,当请求等待响应时,其他 JavaScript 代码会运行,因此用户不必等待。(如果代码等待响应,我们称它为阻塞线程。否则为非阻塞)。作为解决方案,您将不得不编写一些异步代码和回调函数:
var baseUrl = 'http://localhost:3000';
function getData(){
$.ajax({
type: "GET",
url: baseUrl + "/jobs",
data: "{}",
success: function(data){
// call the 'callback function'
myCode(data);
// the return statement would only return this functions, not the $.ajax method
},
dataType: 'json'
});
}
function myCode(data) {
// use data
}
推荐阅读
- python - 如何在数据透视表中单独列出列表的组件?
- pandas - 使用 pandas 和 yahoo Finance 将数据保存到 csv 文件
- git - 如果 PR 已经合并到不同的分支,有没有办法再次创建 PR 到其他分支?
- java - MySQL选择从今年到去年特定月份的所有行
- uml - 为什么它在条件下使用“ ErrCounter >= limt ”?
- image - 尽管从资产中提供了彩色图像,但 SVG 图片在颤动中返回黑色图像
- c++ - 在模板函数内的 lambda 内不会丢弃“if constexpr 分支”
- flask - Airflow Webserver 访问日志的位置
- mongodb - 如何从 MongoDB 中的查询创建集合?
- python - 在 Python re.sub 函数中,如何使用 \n 语法引用组 0?