【发布时间】:2016-04-06 21:35:19
【问题描述】:
我正在使用REST 调用收集一些数据。
我有以下函数调用“目录”端点,该端点返回我的人员列表
我可以获得有关他们孩子的更多信息。
现在要获取他们的个人信息,我必须访问他们各自的 API。
var listOfPeople = [];
var numberOfKids = [];
//using superagent
var req = request.get(ApiPrefix + "/directory");
req.end(function (err, res) {
if (err || !res.ok) {
console.log("Error obtaining directory");
} else {
listOfPeople.add(res.body);
// loop to retrieve all events.
for (var i = 0; i < res.body.length; i++) {
var personID = res.body[i].id;
$.getJSON('/directory/person', {
id: personID
},
function (result) {
numberOfKids.add(result);
});
}
}
});
虽然上面的代码运行良好,但我收到了来自Gulp watch 的错误:
line 67, col 30, Don't make functions within a loop. (W083)
1 error
那么,我如何在期望完全相同的行为的同时解耦循环和 AJAX 调用?
【问题讨论】:
-
将函数移动到循环之前...给它一个名称或变量名称,并使用它而不是文字。因为它可以看到全局并传递动态,所以放置无关紧要。你甚至可以用这个文字
numberOfKids.add或最坏情况下的numberOfKids.add.bind(numberOfKids)替换文字
标签: javascript jquery ajax gulp superagent