Я работаю над сбором некоторых данных с помощью вызовов 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, ожидая точно такое же поведение?
двигаться функция до цикла ... дайте ему имя или имя var, и используйте это вместо литерала. поскольку он может видеть глобальный и передается динамический, размещение не имеет значения. вы, возможно, даже сможете заменить литерал таким буквальным 'numberOfKids.add' или наихудшим случаем' numberOfKids.add.bind (numberOfKids) ' – dandavis