【发布时间】:2017-06-05 21:28:10
【问题描述】:
我对 jQuery 和 Javascript 比较陌生,我正在尝试使用从 API 接收到的信息创建一个对象。该对象应该为数组users 中的每个用户保存一个基本信息对象。为此,我为每个用户进行 API 调用,然后将 json 传递给应该创建其属性的构造函数。但是,当我运行代码时,该对象只有一个 name 属性。并且仅适用于第一个用户,而不是全部。
谁能告诉我我做错了什么?
代码如下:
$(document).ready(function () {
var url = "https://wind-bow.gomix.me/twitch-api/streams/";
var users = ["ESL_SC2", "OgamingSC2", "cretetion", "freecodecamp", "storbeck", "habathcx", "RobotCaleb", "noobs2ninjas"];
var streamersObj = {};
for(var i = 0; i < users.length; i++) {
console.log(users[i]);
connectToApi(users[i]);
}
function StreamerObjCreate (jsonObj, name) {
streamersObj[name] = name;
streamersObj[name].onStream = jsonObj.stream;
streamersObj[name].channel = jsonObj._links.channel;
streamersObj[name].stream = jsonObj._links.self;
console.log(streamersObj);
}
function connectToApi (target) {
url = url + target + "?" + "callback=?";
$.getJSON(url, function (json) {
StreamerObjCreate(json, target);
});
}
console.log(streamersObj);
});
我刚开始学习,所以如果您有任何相关或不相关的反馈,将不胜感激。
【问题讨论】:
-
只是注释:$.getJSON 函数不会向回调函数发送 JSON,所以不要使用“json”作为变量名,这会造成混淆。称它为“数据”更准确。
标签: javascript jquery json api