我正在努力让这个功能起作用,我是javascript的新手,我正在为家庭作业做这个。我尝试下面的代码,但结果没有出现。我很确定我做错了,因为这是我第一次从API获取数据。任何提示或帮助都非常感谢。
代码:
function getStudentsInCourse() {
$.get("http://web.cs.somecollege.edu/~doej/web/api/student/getStudents/")
.done(function (data) {
return data;
})
.fail(function (jqXHR, textStatus, errorThrown) {
console.log("Error calling Student/getStudentsInCourse: " + errorThrown);
});
}
呼叫:
var course []
course = getStudentsInCourse();
注意:.coursenum是从API本身引用的。
参数 coursenum - string;课程的唯一标识符
返回 JSON对象数组
API的示例数据:
[
{
"id": "3",
"name": "Jax",
"level": "Junior",
"owner": "public",
"photo_filename": "",
"active": "1"
},
{
"id": "4",
"name": "Ashe",
"level": "Junior",
"owner": "public",
"photo_filename": "",
"active": "1"
}
]
答案 0 :(得分:1)
get
是异步的。在您的情况下,您无法获得任何数据。因为你打电话是同步的。
function getStudentsInCourse(cb) {
$.get("http://web.cs.somecollege.edu/~doej/web/api/student/getStudents/")
.done(function (data) {
cb(null, data);
})
.fail(function (jqXHR, textStatus, errorThrown) {
cb(errorThrown);
});
}
getStudentsCourse(function (err, data) {
//your code is here
});
答案 1 :(得分:0)
我喜欢Isa Bek的答案,但Promise的解决方案更优雅。
var courses = [];
function getStudentsInCourse() {
return $.get("http://web.cs.somecollege.edu/~doej/web/api/student/getStudents/");
}
function successHandler(response) {
courses.push(response);
}
function failHandler(jqXHR, textStatus, errorThrown) {
console.log("Error calling Student/getStudentsInCourse: " + errorThrown);
}
getStudentsInCourse().then(successHandler, failHandler);