2016-04-06 30 views
-1

我正在使用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调用,同时期待完全相同的行为?

+0

举动在循环之前的函数...给它一个名称或var名称,并使用它来代替文字。因为它可以看到全球并通过动态,所以放置并不重要。你甚至可以用这个文字'numberOfKids.add'或最坏的情况'numberOfKids.add.bind(numberOfKids)'来替换文字, – dandavis

回答